/**
 * Autogenerated by Thrift Compiler (0.16.0)
 *
 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 *  @generated
 */
package org.apache.hadoop.hive.metastore.api;

@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.16.0)")
@org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public class ThriftHiveMetastore {

  /**
   * This interface is live.
   */
  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public interface Iface extends com.facebook.fb303.FacebookService.Iface {

    public java.lang.String getMetaConf(java.lang.String key) throws MetaException, org.apache.thrift.TException;

    public void setMetaConf(java.lang.String key, java.lang.String value) throws MetaException, org.apache.thrift.TException;

    public boolean init_schema(java.lang.String dbType, java.lang.String username, java.lang.String password) throws MetaException, org.apache.thrift.TException;

    public void create_catalog(CreateCatalogRequest catalog) throws AlreadyExistsException, InvalidObjectException, MetaException, org.apache.thrift.TException;

    public void alter_catalog(AlterCatalogRequest rqst) throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException;

    public GetCatalogResponse get_catalog(GetCatalogRequest catName) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public GetCatalogsResponse get_catalogs() throws MetaException, org.apache.thrift.TException;

    public void drop_catalog(DropCatalogRequest catName) throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException;

    public void create_database(Database database) throws AlreadyExistsException, InvalidObjectException, MetaException, org.apache.thrift.TException;

    public Database get_database(java.lang.String name) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public void drop_database(java.lang.String name, boolean deleteData, boolean cascade) throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException;

    public java.util.List<java.lang.String> get_databases(java.lang.String pattern) throws MetaException, org.apache.thrift.TException;

    public java.util.List<java.lang.String> get_all_databases() throws MetaException, org.apache.thrift.TException;

    public void alter_database(java.lang.String dbname, Database db) throws MetaException, NoSuchObjectException, org.apache.thrift.TException;

    public Type get_type(java.lang.String name) throws MetaException, NoSuchObjectException, org.apache.thrift.TException;

    public boolean create_type(Type type) throws AlreadyExistsException, InvalidObjectException, MetaException, org.apache.thrift.TException;

    public boolean drop_type(java.lang.String type) throws MetaException, NoSuchObjectException, org.apache.thrift.TException;

    public java.util.Map<java.lang.String,Type> get_type_all(java.lang.String name) throws MetaException, org.apache.thrift.TException;

    public java.util.List<FieldSchema> get_fields(java.lang.String db_name, java.lang.String table_name) throws MetaException, UnknownTableException, UnknownDBException, org.apache.thrift.TException;

    public java.util.List<FieldSchema> get_fields_with_environment_context(java.lang.String db_name, java.lang.String table_name, EnvironmentContext environment_context) throws MetaException, UnknownTableException, UnknownDBException, org.apache.thrift.TException;

    public java.util.List<FieldSchema> get_schema(java.lang.String db_name, java.lang.String table_name) throws MetaException, UnknownTableException, UnknownDBException, org.apache.thrift.TException;

    public java.util.List<FieldSchema> get_schema_with_environment_context(java.lang.String db_name, java.lang.String table_name, EnvironmentContext environment_context) throws MetaException, UnknownTableException, UnknownDBException, org.apache.thrift.TException;

    public void create_table(Table tbl) throws AlreadyExistsException, InvalidObjectException, MetaException, NoSuchObjectException, org.apache.thrift.TException;

    public void create_table_with_environment_context(Table tbl, EnvironmentContext environment_context) throws AlreadyExistsException, InvalidObjectException, MetaException, NoSuchObjectException, org.apache.thrift.TException;

    public void create_table_with_constraints(Table tbl, java.util.List<SQLPrimaryKey> primaryKeys, java.util.List<SQLForeignKey> foreignKeys, java.util.List<SQLUniqueConstraint> uniqueConstraints, java.util.List<SQLNotNullConstraint> notNullConstraints, java.util.List<SQLDefaultConstraint> defaultConstraints, java.util.List<SQLCheckConstraint> checkConstraints) throws AlreadyExistsException, InvalidObjectException, MetaException, NoSuchObjectException, org.apache.thrift.TException;

    public void drop_constraint(DropConstraintRequest req) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public void add_primary_key(AddPrimaryKeyRequest req) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public void add_foreign_key(AddForeignKeyRequest req) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public void add_unique_constraint(AddUniqueConstraintRequest req) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public void add_not_null_constraint(AddNotNullConstraintRequest req) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public void add_default_constraint(AddDefaultConstraintRequest req) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public void add_check_constraint(AddCheckConstraintRequest req) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public void drop_table(java.lang.String dbname, java.lang.String name, boolean deleteData) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public void drop_table_with_environment_context(java.lang.String dbname, java.lang.String name, boolean deleteData, EnvironmentContext environment_context) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public void truncate_table(java.lang.String dbName, java.lang.String tableName, java.util.List<java.lang.String> partNames) throws MetaException, org.apache.thrift.TException;

    public java.util.List<java.lang.String> get_tables(java.lang.String db_name, java.lang.String pattern) throws MetaException, org.apache.thrift.TException;

    public java.util.List<java.lang.String> get_tables_by_type(java.lang.String db_name, java.lang.String pattern, java.lang.String tableType) throws MetaException, org.apache.thrift.TException;

    public java.util.List<java.lang.String> get_materialized_views_for_rewriting(java.lang.String db_name) throws MetaException, org.apache.thrift.TException;

    public java.util.List<TableMeta> get_table_meta(java.lang.String db_patterns, java.lang.String tbl_patterns, java.util.List<java.lang.String> tbl_types) throws MetaException, org.apache.thrift.TException;

    public java.util.List<java.lang.String> get_all_tables(java.lang.String db_name) throws MetaException, org.apache.thrift.TException;

    public Table get_table(java.lang.String dbname, java.lang.String tbl_name) throws MetaException, NoSuchObjectException, org.apache.thrift.TException;

    public java.util.List<Table> get_table_objects_by_name(java.lang.String dbname, java.util.List<java.lang.String> tbl_names) throws org.apache.thrift.TException;

    public GetTableResult get_table_req(GetTableRequest req) throws MetaException, NoSuchObjectException, org.apache.thrift.TException;

    public GetTablesResult get_table_objects_by_name_req(GetTablesRequest req) throws MetaException, InvalidOperationException, UnknownDBException, org.apache.thrift.TException;

    public Materialization get_materialization_invalidation_info(CreationMetadata creation_metadata, java.lang.String validTxnList) throws MetaException, InvalidOperationException, UnknownDBException, org.apache.thrift.TException;

    public void update_creation_metadata(java.lang.String catName, java.lang.String dbname, java.lang.String tbl_name, CreationMetadata creation_metadata) throws MetaException, InvalidOperationException, UnknownDBException, org.apache.thrift.TException;

    public java.util.List<java.lang.String> get_table_names_by_filter(java.lang.String dbname, java.lang.String filter, short max_tables) throws MetaException, InvalidOperationException, UnknownDBException, org.apache.thrift.TException;

    public void alter_table(java.lang.String dbname, java.lang.String tbl_name, Table new_tbl) throws InvalidOperationException, MetaException, org.apache.thrift.TException;

    public void alter_table_with_environment_context(java.lang.String dbname, java.lang.String tbl_name, Table new_tbl, EnvironmentContext environment_context) throws InvalidOperationException, MetaException, org.apache.thrift.TException;

    public void alter_table_with_cascade(java.lang.String dbname, java.lang.String tbl_name, Table new_tbl, boolean cascade) throws InvalidOperationException, MetaException, org.apache.thrift.TException;

    public Partition add_partition(Partition new_part) throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException;

    public Partition add_partition_with_environment_context(Partition new_part, EnvironmentContext environment_context) throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException;

    public int add_partitions(java.util.List<Partition> new_parts) throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException;

    public int add_partitions_pspec(java.util.List<PartitionSpec> new_parts) throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException;

    public Partition append_partition(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals) throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException;

    public AddPartitionsResult add_partitions_req(AddPartitionsRequest request) throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException;

    public Partition append_partition_with_environment_context(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, EnvironmentContext environment_context) throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException;

    public Partition append_partition_by_name(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name) throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException;

    public Partition append_partition_by_name_with_environment_context(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, EnvironmentContext environment_context) throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException;

    public boolean drop_partition(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, boolean deleteData) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public boolean drop_partition_with_environment_context(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, boolean deleteData, EnvironmentContext environment_context) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public boolean drop_partition_by_name(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, boolean deleteData) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public boolean drop_partition_by_name_with_environment_context(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, boolean deleteData, EnvironmentContext environment_context) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public DropPartitionsResult drop_partitions_req(DropPartitionsRequest req) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public Partition get_partition(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals) throws MetaException, NoSuchObjectException, org.apache.thrift.TException;

    public Partition exchange_partition(java.util.Map<java.lang.String,java.lang.String> partitionSpecs, java.lang.String source_db, java.lang.String source_table_name, java.lang.String dest_db, java.lang.String dest_table_name) throws MetaException, NoSuchObjectException, InvalidObjectException, InvalidInputException, org.apache.thrift.TException;

    public java.util.List<Partition> exchange_partitions(java.util.Map<java.lang.String,java.lang.String> partitionSpecs, java.lang.String source_db, java.lang.String source_table_name, java.lang.String dest_db, java.lang.String dest_table_name) throws MetaException, NoSuchObjectException, InvalidObjectException, InvalidInputException, org.apache.thrift.TException;

    public Partition get_partition_with_auth(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, java.lang.String user_name, java.util.List<java.lang.String> group_names) throws MetaException, NoSuchObjectException, org.apache.thrift.TException;

    public Partition get_partition_by_name(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name) throws MetaException, NoSuchObjectException, org.apache.thrift.TException;

    public java.util.List<Partition> get_partitions(java.lang.String db_name, java.lang.String tbl_name, short max_parts) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public java.util.List<Partition> get_partitions_with_auth(java.lang.String db_name, java.lang.String tbl_name, short max_parts, java.lang.String user_name, java.util.List<java.lang.String> group_names) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public java.util.List<PartitionSpec> get_partitions_pspec(java.lang.String db_name, java.lang.String tbl_name, int max_parts) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public java.util.List<java.lang.String> get_partition_names(java.lang.String db_name, java.lang.String tbl_name, short max_parts) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public PartitionValuesResponse get_partition_values(PartitionValuesRequest request) throws MetaException, NoSuchObjectException, org.apache.thrift.TException;

    public java.util.List<Partition> get_partitions_ps(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, short max_parts) throws MetaException, NoSuchObjectException, org.apache.thrift.TException;

    public java.util.List<Partition> get_partitions_ps_with_auth(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, short max_parts, java.lang.String user_name, java.util.List<java.lang.String> group_names) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public java.util.List<java.lang.String> get_partition_names_ps(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, short max_parts) throws MetaException, NoSuchObjectException, org.apache.thrift.TException;

    public java.util.List<Partition> get_partitions_by_filter(java.lang.String db_name, java.lang.String tbl_name, java.lang.String filter, short max_parts) throws MetaException, NoSuchObjectException, org.apache.thrift.TException;

    public java.util.List<PartitionSpec> get_part_specs_by_filter(java.lang.String db_name, java.lang.String tbl_name, java.lang.String filter, int max_parts) throws MetaException, NoSuchObjectException, org.apache.thrift.TException;

    public PartitionsByExprResult get_partitions_by_expr(PartitionsByExprRequest req) throws MetaException, NoSuchObjectException, org.apache.thrift.TException;

    public int get_num_partitions_by_filter(java.lang.String db_name, java.lang.String tbl_name, java.lang.String filter) throws MetaException, NoSuchObjectException, org.apache.thrift.TException;

    public java.util.List<Partition> get_partitions_by_names(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> names) throws MetaException, NoSuchObjectException, org.apache.thrift.TException;

    public void alter_partition(java.lang.String db_name, java.lang.String tbl_name, Partition new_part) throws InvalidOperationException, MetaException, org.apache.thrift.TException;

    public void alter_partitions(java.lang.String db_name, java.lang.String tbl_name, java.util.List<Partition> new_parts) throws InvalidOperationException, MetaException, org.apache.thrift.TException;

    public void alter_partitions_with_environment_context(java.lang.String db_name, java.lang.String tbl_name, java.util.List<Partition> new_parts, EnvironmentContext environment_context) throws InvalidOperationException, MetaException, org.apache.thrift.TException;

    public void alter_partition_with_environment_context(java.lang.String db_name, java.lang.String tbl_name, Partition new_part, EnvironmentContext environment_context) throws InvalidOperationException, MetaException, org.apache.thrift.TException;

    public void rename_partition(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, Partition new_part) throws InvalidOperationException, MetaException, org.apache.thrift.TException;

    public boolean partition_name_has_valid_characters(java.util.List<java.lang.String> part_vals, boolean throw_exception) throws MetaException, org.apache.thrift.TException;

    public java.lang.String get_config_value(java.lang.String name, java.lang.String defaultValue) throws ConfigValSecurityException, org.apache.thrift.TException;

    public java.util.List<java.lang.String> partition_name_to_vals(java.lang.String part_name) throws MetaException, org.apache.thrift.TException;

    public java.util.Map<java.lang.String,java.lang.String> partition_name_to_spec(java.lang.String part_name) throws MetaException, org.apache.thrift.TException;

    public void markPartitionForEvent(java.lang.String db_name, java.lang.String tbl_name, java.util.Map<java.lang.String,java.lang.String> part_vals, PartitionEventType eventType) throws MetaException, NoSuchObjectException, UnknownDBException, UnknownTableException, UnknownPartitionException, InvalidPartitionException, org.apache.thrift.TException;

    public boolean isPartitionMarkedForEvent(java.lang.String db_name, java.lang.String tbl_name, java.util.Map<java.lang.String,java.lang.String> part_vals, PartitionEventType eventType) throws MetaException, NoSuchObjectException, UnknownDBException, UnknownTableException, UnknownPartitionException, InvalidPartitionException, org.apache.thrift.TException;

    public PrimaryKeysResponse get_primary_keys(PrimaryKeysRequest request) throws MetaException, NoSuchObjectException, org.apache.thrift.TException;

    public ForeignKeysResponse get_foreign_keys(ForeignKeysRequest request) throws MetaException, NoSuchObjectException, org.apache.thrift.TException;

    public UniqueConstraintsResponse get_unique_constraints(UniqueConstraintsRequest request) throws MetaException, NoSuchObjectException, org.apache.thrift.TException;

    public NotNullConstraintsResponse get_not_null_constraints(NotNullConstraintsRequest request) throws MetaException, NoSuchObjectException, org.apache.thrift.TException;

    public DefaultConstraintsResponse get_default_constraints(DefaultConstraintsRequest request) throws MetaException, NoSuchObjectException, org.apache.thrift.TException;

    public CheckConstraintsResponse get_check_constraints(CheckConstraintsRequest request) throws MetaException, NoSuchObjectException, org.apache.thrift.TException;

    public boolean update_table_column_statistics(ColumnStatistics stats_obj) throws NoSuchObjectException, InvalidObjectException, MetaException, InvalidInputException, org.apache.thrift.TException;

    public boolean update_partition_column_statistics(ColumnStatistics stats_obj) throws NoSuchObjectException, InvalidObjectException, MetaException, InvalidInputException, org.apache.thrift.TException;

    public ColumnStatistics get_table_column_statistics(java.lang.String db_name, java.lang.String tbl_name, java.lang.String col_name) throws NoSuchObjectException, MetaException, InvalidInputException, InvalidObjectException, org.apache.thrift.TException;

    public ColumnStatistics get_partition_column_statistics(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, java.lang.String col_name) throws NoSuchObjectException, MetaException, InvalidInputException, InvalidObjectException, org.apache.thrift.TException;

    public TableStatsResult get_table_statistics_req(TableStatsRequest request) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public PartitionsStatsResult get_partitions_statistics_req(PartitionsStatsRequest request) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public AggrStats get_aggr_stats_for(PartitionsStatsRequest request) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public boolean set_aggr_stats_for(SetPartitionsStatsRequest request) throws NoSuchObjectException, InvalidObjectException, MetaException, InvalidInputException, org.apache.thrift.TException;

    public boolean delete_partition_column_statistics(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, java.lang.String col_name) throws NoSuchObjectException, MetaException, InvalidObjectException, InvalidInputException, org.apache.thrift.TException;

    public boolean delete_table_column_statistics(java.lang.String db_name, java.lang.String tbl_name, java.lang.String col_name) throws NoSuchObjectException, MetaException, InvalidObjectException, InvalidInputException, org.apache.thrift.TException;

    public void create_function(Function func) throws AlreadyExistsException, InvalidObjectException, MetaException, NoSuchObjectException, org.apache.thrift.TException;

    public void drop_function(java.lang.String dbName, java.lang.String funcName) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public void alter_function(java.lang.String dbName, java.lang.String funcName, Function newFunc) throws InvalidOperationException, MetaException, org.apache.thrift.TException;

    public java.util.List<java.lang.String> get_functions(java.lang.String dbName, java.lang.String pattern) throws MetaException, org.apache.thrift.TException;

    public Function get_function(java.lang.String dbName, java.lang.String funcName) throws MetaException, NoSuchObjectException, org.apache.thrift.TException;

    public GetAllFunctionsResponse get_all_functions() throws MetaException, org.apache.thrift.TException;

    public boolean create_role(Role role) throws MetaException, org.apache.thrift.TException;

    public boolean drop_role(java.lang.String role_name) throws MetaException, org.apache.thrift.TException;

    public java.util.List<java.lang.String> get_role_names() throws MetaException, org.apache.thrift.TException;

    public boolean grant_role(java.lang.String role_name, java.lang.String principal_name, PrincipalType principal_type, java.lang.String grantor, PrincipalType grantorType, boolean grant_option) throws MetaException, org.apache.thrift.TException;

    public boolean revoke_role(java.lang.String role_name, java.lang.String principal_name, PrincipalType principal_type) throws MetaException, org.apache.thrift.TException;

    public java.util.List<Role> list_roles(java.lang.String principal_name, PrincipalType principal_type) throws MetaException, org.apache.thrift.TException;

    public GrantRevokeRoleResponse grant_revoke_role(GrantRevokeRoleRequest request) throws MetaException, org.apache.thrift.TException;

    public GetPrincipalsInRoleResponse get_principals_in_role(GetPrincipalsInRoleRequest request) throws MetaException, org.apache.thrift.TException;

    public GetRoleGrantsForPrincipalResponse get_role_grants_for_principal(GetRoleGrantsForPrincipalRequest request) throws MetaException, org.apache.thrift.TException;

    public PrincipalPrivilegeSet get_privilege_set(HiveObjectRef hiveObject, java.lang.String user_name, java.util.List<java.lang.String> group_names) throws MetaException, org.apache.thrift.TException;

    public java.util.List<HiveObjectPrivilege> list_privileges(java.lang.String principal_name, PrincipalType principal_type, HiveObjectRef hiveObject) throws MetaException, org.apache.thrift.TException;

    public boolean grant_privileges(PrivilegeBag privileges) throws MetaException, org.apache.thrift.TException;

    public boolean revoke_privileges(PrivilegeBag privileges) throws MetaException, org.apache.thrift.TException;

    public GrantRevokePrivilegeResponse grant_revoke_privileges(GrantRevokePrivilegeRequest request) throws MetaException, org.apache.thrift.TException;

    public GrantRevokePrivilegeResponse refresh_privileges(HiveObjectRef objToRefresh, java.lang.String authorizer, GrantRevokePrivilegeRequest grantRequest) throws MetaException, org.apache.thrift.TException;

    public java.util.List<java.lang.String> set_ugi(java.lang.String user_name, java.util.List<java.lang.String> group_names) throws MetaException, org.apache.thrift.TException;

    public java.lang.String get_delegation_token(java.lang.String token_owner, java.lang.String renewer_kerberos_principal_name) throws MetaException, org.apache.thrift.TException;

    public long renew_delegation_token(java.lang.String token_str_form) throws MetaException, org.apache.thrift.TException;

    public void cancel_delegation_token(java.lang.String token_str_form) throws MetaException, org.apache.thrift.TException;

    public boolean add_token(java.lang.String token_identifier, java.lang.String delegation_token) throws org.apache.thrift.TException;

    public boolean remove_token(java.lang.String token_identifier) throws org.apache.thrift.TException;

    public java.lang.String get_token(java.lang.String token_identifier) throws org.apache.thrift.TException;

    public java.util.List<java.lang.String> get_all_token_identifiers() throws org.apache.thrift.TException;

    public int add_master_key(java.lang.String key) throws MetaException, org.apache.thrift.TException;

    public void update_master_key(int seq_number, java.lang.String key) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public boolean remove_master_key(int key_seq) throws org.apache.thrift.TException;

    public java.util.List<java.lang.String> get_master_keys() throws org.apache.thrift.TException;

    public GetOpenTxnsResponse get_open_txns() throws org.apache.thrift.TException;

    public GetOpenTxnsInfoResponse get_open_txns_info() throws org.apache.thrift.TException;

    public OpenTxnsResponse open_txns(OpenTxnRequest rqst) throws org.apache.thrift.TException;

    public void abort_txn(AbortTxnRequest rqst) throws NoSuchTxnException, org.apache.thrift.TException;

    public void abort_txns(AbortTxnsRequest rqst) throws NoSuchTxnException, org.apache.thrift.TException;

    public void commit_txn(CommitTxnRequest rqst) throws NoSuchTxnException, TxnAbortedException, org.apache.thrift.TException;

    public void repl_tbl_writeid_state(ReplTblWriteIdStateRequest rqst) throws org.apache.thrift.TException;

    public GetValidWriteIdsResponse get_valid_write_ids(GetValidWriteIdsRequest rqst) throws NoSuchTxnException, MetaException, org.apache.thrift.TException;

    public AllocateTableWriteIdsResponse allocate_table_write_ids(AllocateTableWriteIdsRequest rqst) throws NoSuchTxnException, TxnAbortedException, MetaException, org.apache.thrift.TException;

    public LockResponse lock(LockRequest rqst) throws NoSuchTxnException, TxnAbortedException, org.apache.thrift.TException;

    public LockResponse check_lock(CheckLockRequest rqst) throws NoSuchTxnException, TxnAbortedException, NoSuchLockException, org.apache.thrift.TException;

    public void unlock(UnlockRequest rqst) throws NoSuchLockException, TxnOpenException, org.apache.thrift.TException;

    public ShowLocksResponse show_locks(ShowLocksRequest rqst) throws org.apache.thrift.TException;

    public void heartbeat(HeartbeatRequest ids) throws NoSuchLockException, NoSuchTxnException, TxnAbortedException, org.apache.thrift.TException;

    public HeartbeatTxnRangeResponse heartbeat_txn_range(HeartbeatTxnRangeRequest txns) throws org.apache.thrift.TException;

    public void compact(CompactionRequest rqst) throws org.apache.thrift.TException;

    public CompactionResponse compact2(CompactionRequest rqst) throws org.apache.thrift.TException;

    public ShowCompactResponse show_compact(ShowCompactRequest rqst) throws org.apache.thrift.TException;

    public void add_dynamic_partitions(AddDynamicPartitions rqst) throws NoSuchTxnException, TxnAbortedException, org.apache.thrift.TException;

    public NotificationEventResponse get_next_notification(NotificationEventRequest rqst) throws org.apache.thrift.TException;

    public CurrentNotificationEventId get_current_notificationEventId() throws org.apache.thrift.TException;

    public NotificationEventsCountResponse get_notification_events_count(NotificationEventsCountRequest rqst) throws org.apache.thrift.TException;

    public FireEventResponse fire_listener_event(FireEventRequest rqst) throws org.apache.thrift.TException;

    public void flushCache() throws org.apache.thrift.TException;

    public CmRecycleResponse cm_recycle(CmRecycleRequest request) throws MetaException, org.apache.thrift.TException;

    public GetFileMetadataByExprResult get_file_metadata_by_expr(GetFileMetadataByExprRequest req) throws org.apache.thrift.TException;

    public GetFileMetadataResult get_file_metadata(GetFileMetadataRequest req) throws org.apache.thrift.TException;

    public PutFileMetadataResult put_file_metadata(PutFileMetadataRequest req) throws org.apache.thrift.TException;

    public ClearFileMetadataResult clear_file_metadata(ClearFileMetadataRequest req) throws org.apache.thrift.TException;

    public CacheFileMetadataResult cache_file_metadata(CacheFileMetadataRequest req) throws org.apache.thrift.TException;

    public java.lang.String get_metastore_db_uuid() throws MetaException, org.apache.thrift.TException;

    public WMCreateResourcePlanResponse create_resource_plan(WMCreateResourcePlanRequest request) throws AlreadyExistsException, InvalidObjectException, MetaException, org.apache.thrift.TException;

    public WMGetResourcePlanResponse get_resource_plan(WMGetResourcePlanRequest request) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public WMGetActiveResourcePlanResponse get_active_resource_plan(WMGetActiveResourcePlanRequest request) throws MetaException, org.apache.thrift.TException;

    public WMGetAllResourcePlanResponse get_all_resource_plans(WMGetAllResourcePlanRequest request) throws MetaException, org.apache.thrift.TException;

    public WMAlterResourcePlanResponse alter_resource_plan(WMAlterResourcePlanRequest request) throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException;

    public WMValidateResourcePlanResponse validate_resource_plan(WMValidateResourcePlanRequest request) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public WMDropResourcePlanResponse drop_resource_plan(WMDropResourcePlanRequest request) throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException;

    public WMCreateTriggerResponse create_wm_trigger(WMCreateTriggerRequest request) throws AlreadyExistsException, NoSuchObjectException, InvalidObjectException, MetaException, org.apache.thrift.TException;

    public WMAlterTriggerResponse alter_wm_trigger(WMAlterTriggerRequest request) throws NoSuchObjectException, InvalidObjectException, MetaException, org.apache.thrift.TException;

    public WMDropTriggerResponse drop_wm_trigger(WMDropTriggerRequest request) throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException;

    public WMGetTriggersForResourePlanResponse get_triggers_for_resourceplan(WMGetTriggersForResourePlanRequest request) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public WMCreatePoolResponse create_wm_pool(WMCreatePoolRequest request) throws AlreadyExistsException, NoSuchObjectException, InvalidObjectException, MetaException, org.apache.thrift.TException;

    public WMAlterPoolResponse alter_wm_pool(WMAlterPoolRequest request) throws AlreadyExistsException, NoSuchObjectException, InvalidObjectException, MetaException, org.apache.thrift.TException;

    public WMDropPoolResponse drop_wm_pool(WMDropPoolRequest request) throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException;

    public WMCreateOrUpdateMappingResponse create_or_update_wm_mapping(WMCreateOrUpdateMappingRequest request) throws AlreadyExistsException, NoSuchObjectException, InvalidObjectException, MetaException, org.apache.thrift.TException;

    public WMDropMappingResponse drop_wm_mapping(WMDropMappingRequest request) throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException;

    public WMCreateOrDropTriggerToPoolMappingResponse create_or_drop_wm_trigger_to_pool_mapping(WMCreateOrDropTriggerToPoolMappingRequest request) throws AlreadyExistsException, NoSuchObjectException, InvalidObjectException, MetaException, org.apache.thrift.TException;

    public void create_ischema(ISchema schema) throws AlreadyExistsException, NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public void alter_ischema(AlterISchemaRequest rqst) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public ISchema get_ischema(ISchemaName name) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public void drop_ischema(ISchemaName name) throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException;

    public void add_schema_version(SchemaVersion schemaVersion) throws AlreadyExistsException, NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public SchemaVersion get_schema_version(SchemaVersionDescriptor schemaVersion) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public SchemaVersion get_schema_latest_version(ISchemaName schemaName) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public java.util.List<SchemaVersion> get_schema_all_versions(ISchemaName schemaName) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public void drop_schema_version(SchemaVersionDescriptor schemaVersion) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public FindSchemasByColsResp get_schemas_by_cols(FindSchemasByColsRqst rqst) throws MetaException, org.apache.thrift.TException;

    public void map_schema_version_to_serde(MapSchemaVersionToSerdeRequest rqst) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public void set_schema_version_state(SetSchemaVersionStateRequest rqst) throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException;

    public void add_serde(SerDeInfo serde) throws AlreadyExistsException, MetaException, org.apache.thrift.TException;

    public SerDeInfo get_serde(GetSerdeRequest rqst) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;

    public LockResponse get_lock_materialization_rebuild(java.lang.String dbName, java.lang.String tableName, long txnId) throws org.apache.thrift.TException;

    public boolean heartbeat_lock_materialization_rebuild(java.lang.String dbName, java.lang.String tableName, long txnId) throws org.apache.thrift.TException;

    public void add_runtime_stats(RuntimeStat stat) throws MetaException, org.apache.thrift.TException;

    public java.util.List<RuntimeStat> get_runtime_stats(GetRuntimeStatsRequest rqst) throws MetaException, org.apache.thrift.TException;

  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public interface AsyncIface extends com.facebook.fb303.FacebookService .AsyncIface {

    public void getMetaConf(java.lang.String key, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;

    public void setMetaConf(java.lang.String key, java.lang.String value, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void init_schema(java.lang.String dbType, java.lang.String username, java.lang.String password, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;

    public void create_catalog(CreateCatalogRequest catalog, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void alter_catalog(AlterCatalogRequest rqst, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void get_catalog(GetCatalogRequest catName, org.apache.thrift.async.AsyncMethodCallback<GetCatalogResponse> resultHandler) throws org.apache.thrift.TException;

    public void get_catalogs(org.apache.thrift.async.AsyncMethodCallback<GetCatalogsResponse> resultHandler) throws org.apache.thrift.TException;

    public void drop_catalog(DropCatalogRequest catName, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void create_database(Database database, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void get_database(java.lang.String name, org.apache.thrift.async.AsyncMethodCallback<Database> resultHandler) throws org.apache.thrift.TException;

    public void drop_database(java.lang.String name, boolean deleteData, boolean cascade, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void get_databases(java.lang.String pattern, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException;

    public void get_all_databases(org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException;

    public void alter_database(java.lang.String dbname, Database db, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void get_type(java.lang.String name, org.apache.thrift.async.AsyncMethodCallback<Type> resultHandler) throws org.apache.thrift.TException;

    public void create_type(Type type, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;

    public void drop_type(java.lang.String type, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;

    public void get_type_all(java.lang.String name, org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,Type>> resultHandler) throws org.apache.thrift.TException;

    public void get_fields(java.lang.String db_name, java.lang.String table_name, org.apache.thrift.async.AsyncMethodCallback<java.util.List<FieldSchema>> resultHandler) throws org.apache.thrift.TException;

    public void get_fields_with_environment_context(java.lang.String db_name, java.lang.String table_name, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<java.util.List<FieldSchema>> resultHandler) throws org.apache.thrift.TException;

    public void get_schema(java.lang.String db_name, java.lang.String table_name, org.apache.thrift.async.AsyncMethodCallback<java.util.List<FieldSchema>> resultHandler) throws org.apache.thrift.TException;

    public void get_schema_with_environment_context(java.lang.String db_name, java.lang.String table_name, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<java.util.List<FieldSchema>> resultHandler) throws org.apache.thrift.TException;

    public void create_table(Table tbl, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void create_table_with_environment_context(Table tbl, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void create_table_with_constraints(Table tbl, java.util.List<SQLPrimaryKey> primaryKeys, java.util.List<SQLForeignKey> foreignKeys, java.util.List<SQLUniqueConstraint> uniqueConstraints, java.util.List<SQLNotNullConstraint> notNullConstraints, java.util.List<SQLDefaultConstraint> defaultConstraints, java.util.List<SQLCheckConstraint> checkConstraints, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void drop_constraint(DropConstraintRequest req, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void add_primary_key(AddPrimaryKeyRequest req, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void add_foreign_key(AddForeignKeyRequest req, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void add_unique_constraint(AddUniqueConstraintRequest req, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void add_not_null_constraint(AddNotNullConstraintRequest req, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void add_default_constraint(AddDefaultConstraintRequest req, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void add_check_constraint(AddCheckConstraintRequest req, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void drop_table(java.lang.String dbname, java.lang.String name, boolean deleteData, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void drop_table_with_environment_context(java.lang.String dbname, java.lang.String name, boolean deleteData, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void truncate_table(java.lang.String dbName, java.lang.String tableName, java.util.List<java.lang.String> partNames, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void get_tables(java.lang.String db_name, java.lang.String pattern, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException;

    public void get_tables_by_type(java.lang.String db_name, java.lang.String pattern, java.lang.String tableType, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException;

    public void get_materialized_views_for_rewriting(java.lang.String db_name, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException;

    public void get_table_meta(java.lang.String db_patterns, java.lang.String tbl_patterns, java.util.List<java.lang.String> tbl_types, org.apache.thrift.async.AsyncMethodCallback<java.util.List<TableMeta>> resultHandler) throws org.apache.thrift.TException;

    public void get_all_tables(java.lang.String db_name, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException;

    public void get_table(java.lang.String dbname, java.lang.String tbl_name, org.apache.thrift.async.AsyncMethodCallback<Table> resultHandler) throws org.apache.thrift.TException;

    public void get_table_objects_by_name(java.lang.String dbname, java.util.List<java.lang.String> tbl_names, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Table>> resultHandler) throws org.apache.thrift.TException;

    public void get_table_req(GetTableRequest req, org.apache.thrift.async.AsyncMethodCallback<GetTableResult> resultHandler) throws org.apache.thrift.TException;

    public void get_table_objects_by_name_req(GetTablesRequest req, org.apache.thrift.async.AsyncMethodCallback<GetTablesResult> resultHandler) throws org.apache.thrift.TException;

    public void get_materialization_invalidation_info(CreationMetadata creation_metadata, java.lang.String validTxnList, org.apache.thrift.async.AsyncMethodCallback<Materialization> resultHandler) throws org.apache.thrift.TException;

    public void update_creation_metadata(java.lang.String catName, java.lang.String dbname, java.lang.String tbl_name, CreationMetadata creation_metadata, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void get_table_names_by_filter(java.lang.String dbname, java.lang.String filter, short max_tables, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException;

    public void alter_table(java.lang.String dbname, java.lang.String tbl_name, Table new_tbl, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void alter_table_with_environment_context(java.lang.String dbname, java.lang.String tbl_name, Table new_tbl, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void alter_table_with_cascade(java.lang.String dbname, java.lang.String tbl_name, Table new_tbl, boolean cascade, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void add_partition(Partition new_part, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler) throws org.apache.thrift.TException;

    public void add_partition_with_environment_context(Partition new_part, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler) throws org.apache.thrift.TException;

    public void add_partitions(java.util.List<Partition> new_parts, org.apache.thrift.async.AsyncMethodCallback<java.lang.Integer> resultHandler) throws org.apache.thrift.TException;

    public void add_partitions_pspec(java.util.List<PartitionSpec> new_parts, org.apache.thrift.async.AsyncMethodCallback<java.lang.Integer> resultHandler) throws org.apache.thrift.TException;

    public void append_partition(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler) throws org.apache.thrift.TException;

    public void add_partitions_req(AddPartitionsRequest request, org.apache.thrift.async.AsyncMethodCallback<AddPartitionsResult> resultHandler) throws org.apache.thrift.TException;

    public void append_partition_with_environment_context(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler) throws org.apache.thrift.TException;

    public void append_partition_by_name(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler) throws org.apache.thrift.TException;

    public void append_partition_by_name_with_environment_context(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler) throws org.apache.thrift.TException;

    public void drop_partition(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, boolean deleteData, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;

    public void drop_partition_with_environment_context(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, boolean deleteData, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;

    public void drop_partition_by_name(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, boolean deleteData, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;

    public void drop_partition_by_name_with_environment_context(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, boolean deleteData, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;

    public void drop_partitions_req(DropPartitionsRequest req, org.apache.thrift.async.AsyncMethodCallback<DropPartitionsResult> resultHandler) throws org.apache.thrift.TException;

    public void get_partition(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler) throws org.apache.thrift.TException;

    public void exchange_partition(java.util.Map<java.lang.String,java.lang.String> partitionSpecs, java.lang.String source_db, java.lang.String source_table_name, java.lang.String dest_db, java.lang.String dest_table_name, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler) throws org.apache.thrift.TException;

    public void exchange_partitions(java.util.Map<java.lang.String,java.lang.String> partitionSpecs, java.lang.String source_db, java.lang.String source_table_name, java.lang.String dest_db, java.lang.String dest_table_name, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> resultHandler) throws org.apache.thrift.TException;

    public void get_partition_with_auth(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, java.lang.String user_name, java.util.List<java.lang.String> group_names, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler) throws org.apache.thrift.TException;

    public void get_partition_by_name(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler) throws org.apache.thrift.TException;

    public void get_partitions(java.lang.String db_name, java.lang.String tbl_name, short max_parts, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> resultHandler) throws org.apache.thrift.TException;

    public void get_partitions_with_auth(java.lang.String db_name, java.lang.String tbl_name, short max_parts, java.lang.String user_name, java.util.List<java.lang.String> group_names, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> resultHandler) throws org.apache.thrift.TException;

    public void get_partitions_pspec(java.lang.String db_name, java.lang.String tbl_name, int max_parts, org.apache.thrift.async.AsyncMethodCallback<java.util.List<PartitionSpec>> resultHandler) throws org.apache.thrift.TException;

    public void get_partition_names(java.lang.String db_name, java.lang.String tbl_name, short max_parts, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException;

    public void get_partition_values(PartitionValuesRequest request, org.apache.thrift.async.AsyncMethodCallback<PartitionValuesResponse> resultHandler) throws org.apache.thrift.TException;

    public void get_partitions_ps(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, short max_parts, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> resultHandler) throws org.apache.thrift.TException;

    public void get_partitions_ps_with_auth(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, short max_parts, java.lang.String user_name, java.util.List<java.lang.String> group_names, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> resultHandler) throws org.apache.thrift.TException;

    public void get_partition_names_ps(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, short max_parts, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException;

    public void get_partitions_by_filter(java.lang.String db_name, java.lang.String tbl_name, java.lang.String filter, short max_parts, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> resultHandler) throws org.apache.thrift.TException;

    public void get_part_specs_by_filter(java.lang.String db_name, java.lang.String tbl_name, java.lang.String filter, int max_parts, org.apache.thrift.async.AsyncMethodCallback<java.util.List<PartitionSpec>> resultHandler) throws org.apache.thrift.TException;

    public void get_partitions_by_expr(PartitionsByExprRequest req, org.apache.thrift.async.AsyncMethodCallback<PartitionsByExprResult> resultHandler) throws org.apache.thrift.TException;

    public void get_num_partitions_by_filter(java.lang.String db_name, java.lang.String tbl_name, java.lang.String filter, org.apache.thrift.async.AsyncMethodCallback<java.lang.Integer> resultHandler) throws org.apache.thrift.TException;

    public void get_partitions_by_names(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> names, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> resultHandler) throws org.apache.thrift.TException;

    public void alter_partition(java.lang.String db_name, java.lang.String tbl_name, Partition new_part, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void alter_partitions(java.lang.String db_name, java.lang.String tbl_name, java.util.List<Partition> new_parts, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void alter_partitions_with_environment_context(java.lang.String db_name, java.lang.String tbl_name, java.util.List<Partition> new_parts, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void alter_partition_with_environment_context(java.lang.String db_name, java.lang.String tbl_name, Partition new_part, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void rename_partition(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, Partition new_part, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void partition_name_has_valid_characters(java.util.List<java.lang.String> part_vals, boolean throw_exception, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;

    public void get_config_value(java.lang.String name, java.lang.String defaultValue, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;

    public void partition_name_to_vals(java.lang.String part_name, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException;

    public void partition_name_to_spec(java.lang.String part_name, org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,java.lang.String>> resultHandler) throws org.apache.thrift.TException;

    public void markPartitionForEvent(java.lang.String db_name, java.lang.String tbl_name, java.util.Map<java.lang.String,java.lang.String> part_vals, PartitionEventType eventType, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void isPartitionMarkedForEvent(java.lang.String db_name, java.lang.String tbl_name, java.util.Map<java.lang.String,java.lang.String> part_vals, PartitionEventType eventType, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;

    public void get_primary_keys(PrimaryKeysRequest request, org.apache.thrift.async.AsyncMethodCallback<PrimaryKeysResponse> resultHandler) throws org.apache.thrift.TException;

    public void get_foreign_keys(ForeignKeysRequest request, org.apache.thrift.async.AsyncMethodCallback<ForeignKeysResponse> resultHandler) throws org.apache.thrift.TException;

    public void get_unique_constraints(UniqueConstraintsRequest request, org.apache.thrift.async.AsyncMethodCallback<UniqueConstraintsResponse> resultHandler) throws org.apache.thrift.TException;

    public void get_not_null_constraints(NotNullConstraintsRequest request, org.apache.thrift.async.AsyncMethodCallback<NotNullConstraintsResponse> resultHandler) throws org.apache.thrift.TException;

    public void get_default_constraints(DefaultConstraintsRequest request, org.apache.thrift.async.AsyncMethodCallback<DefaultConstraintsResponse> resultHandler) throws org.apache.thrift.TException;

    public void get_check_constraints(CheckConstraintsRequest request, org.apache.thrift.async.AsyncMethodCallback<CheckConstraintsResponse> resultHandler) throws org.apache.thrift.TException;

    public void update_table_column_statistics(ColumnStatistics stats_obj, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;

    public void update_partition_column_statistics(ColumnStatistics stats_obj, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;

    public void get_table_column_statistics(java.lang.String db_name, java.lang.String tbl_name, java.lang.String col_name, org.apache.thrift.async.AsyncMethodCallback<ColumnStatistics> resultHandler) throws org.apache.thrift.TException;

    public void get_partition_column_statistics(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, java.lang.String col_name, org.apache.thrift.async.AsyncMethodCallback<ColumnStatistics> resultHandler) throws org.apache.thrift.TException;

    public void get_table_statistics_req(TableStatsRequest request, org.apache.thrift.async.AsyncMethodCallback<TableStatsResult> resultHandler) throws org.apache.thrift.TException;

    public void get_partitions_statistics_req(PartitionsStatsRequest request, org.apache.thrift.async.AsyncMethodCallback<PartitionsStatsResult> resultHandler) throws org.apache.thrift.TException;

    public void get_aggr_stats_for(PartitionsStatsRequest request, org.apache.thrift.async.AsyncMethodCallback<AggrStats> resultHandler) throws org.apache.thrift.TException;

    public void set_aggr_stats_for(SetPartitionsStatsRequest request, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;

    public void delete_partition_column_statistics(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, java.lang.String col_name, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;

    public void delete_table_column_statistics(java.lang.String db_name, java.lang.String tbl_name, java.lang.String col_name, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;

    public void create_function(Function func, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void drop_function(java.lang.String dbName, java.lang.String funcName, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void alter_function(java.lang.String dbName, java.lang.String funcName, Function newFunc, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void get_functions(java.lang.String dbName, java.lang.String pattern, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException;

    public void get_function(java.lang.String dbName, java.lang.String funcName, org.apache.thrift.async.AsyncMethodCallback<Function> resultHandler) throws org.apache.thrift.TException;

    public void get_all_functions(org.apache.thrift.async.AsyncMethodCallback<GetAllFunctionsResponse> resultHandler) throws org.apache.thrift.TException;

    public void create_role(Role role, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;

    public void drop_role(java.lang.String role_name, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;

    public void get_role_names(org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException;

    public void grant_role(java.lang.String role_name, java.lang.String principal_name, PrincipalType principal_type, java.lang.String grantor, PrincipalType grantorType, boolean grant_option, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;

    public void revoke_role(java.lang.String role_name, java.lang.String principal_name, PrincipalType principal_type, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;

    public void list_roles(java.lang.String principal_name, PrincipalType principal_type, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Role>> resultHandler) throws org.apache.thrift.TException;

    public void grant_revoke_role(GrantRevokeRoleRequest request, org.apache.thrift.async.AsyncMethodCallback<GrantRevokeRoleResponse> resultHandler) throws org.apache.thrift.TException;

    public void get_principals_in_role(GetPrincipalsInRoleRequest request, org.apache.thrift.async.AsyncMethodCallback<GetPrincipalsInRoleResponse> resultHandler) throws org.apache.thrift.TException;

    public void get_role_grants_for_principal(GetRoleGrantsForPrincipalRequest request, org.apache.thrift.async.AsyncMethodCallback<GetRoleGrantsForPrincipalResponse> resultHandler) throws org.apache.thrift.TException;

    public void get_privilege_set(HiveObjectRef hiveObject, java.lang.String user_name, java.util.List<java.lang.String> group_names, org.apache.thrift.async.AsyncMethodCallback<PrincipalPrivilegeSet> resultHandler) throws org.apache.thrift.TException;

    public void list_privileges(java.lang.String principal_name, PrincipalType principal_type, HiveObjectRef hiveObject, org.apache.thrift.async.AsyncMethodCallback<java.util.List<HiveObjectPrivilege>> resultHandler) throws org.apache.thrift.TException;

    public void grant_privileges(PrivilegeBag privileges, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;

    public void revoke_privileges(PrivilegeBag privileges, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;

    public void grant_revoke_privileges(GrantRevokePrivilegeRequest request, org.apache.thrift.async.AsyncMethodCallback<GrantRevokePrivilegeResponse> resultHandler) throws org.apache.thrift.TException;

    public void refresh_privileges(HiveObjectRef objToRefresh, java.lang.String authorizer, GrantRevokePrivilegeRequest grantRequest, org.apache.thrift.async.AsyncMethodCallback<GrantRevokePrivilegeResponse> resultHandler) throws org.apache.thrift.TException;

    public void set_ugi(java.lang.String user_name, java.util.List<java.lang.String> group_names, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException;

    public void get_delegation_token(java.lang.String token_owner, java.lang.String renewer_kerberos_principal_name, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;

    public void renew_delegation_token(java.lang.String token_str_form, org.apache.thrift.async.AsyncMethodCallback<java.lang.Long> resultHandler) throws org.apache.thrift.TException;

    public void cancel_delegation_token(java.lang.String token_str_form, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void add_token(java.lang.String token_identifier, java.lang.String delegation_token, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;

    public void remove_token(java.lang.String token_identifier, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;

    public void get_token(java.lang.String token_identifier, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;

    public void get_all_token_identifiers(org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException;

    public void add_master_key(java.lang.String key, org.apache.thrift.async.AsyncMethodCallback<java.lang.Integer> resultHandler) throws org.apache.thrift.TException;

    public void update_master_key(int seq_number, java.lang.String key, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void remove_master_key(int key_seq, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;

    public void get_master_keys(org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException;

    public void get_open_txns(org.apache.thrift.async.AsyncMethodCallback<GetOpenTxnsResponse> resultHandler) throws org.apache.thrift.TException;

    public void get_open_txns_info(org.apache.thrift.async.AsyncMethodCallback<GetOpenTxnsInfoResponse> resultHandler) throws org.apache.thrift.TException;

    public void open_txns(OpenTxnRequest rqst, org.apache.thrift.async.AsyncMethodCallback<OpenTxnsResponse> resultHandler) throws org.apache.thrift.TException;

    public void abort_txn(AbortTxnRequest rqst, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void abort_txns(AbortTxnsRequest rqst, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void commit_txn(CommitTxnRequest rqst, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void repl_tbl_writeid_state(ReplTblWriteIdStateRequest rqst, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void get_valid_write_ids(GetValidWriteIdsRequest rqst, org.apache.thrift.async.AsyncMethodCallback<GetValidWriteIdsResponse> resultHandler) throws org.apache.thrift.TException;

    public void allocate_table_write_ids(AllocateTableWriteIdsRequest rqst, org.apache.thrift.async.AsyncMethodCallback<AllocateTableWriteIdsResponse> resultHandler) throws org.apache.thrift.TException;

    public void lock(LockRequest rqst, org.apache.thrift.async.AsyncMethodCallback<LockResponse> resultHandler) throws org.apache.thrift.TException;

    public void check_lock(CheckLockRequest rqst, org.apache.thrift.async.AsyncMethodCallback<LockResponse> resultHandler) throws org.apache.thrift.TException;

    public void unlock(UnlockRequest rqst, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void show_locks(ShowLocksRequest rqst, org.apache.thrift.async.AsyncMethodCallback<ShowLocksResponse> resultHandler) throws org.apache.thrift.TException;

    public void heartbeat(HeartbeatRequest ids, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void heartbeat_txn_range(HeartbeatTxnRangeRequest txns, org.apache.thrift.async.AsyncMethodCallback<HeartbeatTxnRangeResponse> resultHandler) throws org.apache.thrift.TException;

    public void compact(CompactionRequest rqst, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void compact2(CompactionRequest rqst, org.apache.thrift.async.AsyncMethodCallback<CompactionResponse> resultHandler) throws org.apache.thrift.TException;

    public void show_compact(ShowCompactRequest rqst, org.apache.thrift.async.AsyncMethodCallback<ShowCompactResponse> resultHandler) throws org.apache.thrift.TException;

    public void add_dynamic_partitions(AddDynamicPartitions rqst, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void get_next_notification(NotificationEventRequest rqst, org.apache.thrift.async.AsyncMethodCallback<NotificationEventResponse> resultHandler) throws org.apache.thrift.TException;

    public void get_current_notificationEventId(org.apache.thrift.async.AsyncMethodCallback<CurrentNotificationEventId> resultHandler) throws org.apache.thrift.TException;

    public void get_notification_events_count(NotificationEventsCountRequest rqst, org.apache.thrift.async.AsyncMethodCallback<NotificationEventsCountResponse> resultHandler) throws org.apache.thrift.TException;

    public void fire_listener_event(FireEventRequest rqst, org.apache.thrift.async.AsyncMethodCallback<FireEventResponse> resultHandler) throws org.apache.thrift.TException;

    public void flushCache(org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void cm_recycle(CmRecycleRequest request, org.apache.thrift.async.AsyncMethodCallback<CmRecycleResponse> resultHandler) throws org.apache.thrift.TException;

    public void get_file_metadata_by_expr(GetFileMetadataByExprRequest req, org.apache.thrift.async.AsyncMethodCallback<GetFileMetadataByExprResult> resultHandler) throws org.apache.thrift.TException;

    public void get_file_metadata(GetFileMetadataRequest req, org.apache.thrift.async.AsyncMethodCallback<GetFileMetadataResult> resultHandler) throws org.apache.thrift.TException;

    public void put_file_metadata(PutFileMetadataRequest req, org.apache.thrift.async.AsyncMethodCallback<PutFileMetadataResult> resultHandler) throws org.apache.thrift.TException;

    public void clear_file_metadata(ClearFileMetadataRequest req, org.apache.thrift.async.AsyncMethodCallback<ClearFileMetadataResult> resultHandler) throws org.apache.thrift.TException;

    public void cache_file_metadata(CacheFileMetadataRequest req, org.apache.thrift.async.AsyncMethodCallback<CacheFileMetadataResult> resultHandler) throws org.apache.thrift.TException;

    public void get_metastore_db_uuid(org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;

    public void create_resource_plan(WMCreateResourcePlanRequest request, org.apache.thrift.async.AsyncMethodCallback<WMCreateResourcePlanResponse> resultHandler) throws org.apache.thrift.TException;

    public void get_resource_plan(WMGetResourcePlanRequest request, org.apache.thrift.async.AsyncMethodCallback<WMGetResourcePlanResponse> resultHandler) throws org.apache.thrift.TException;

    public void get_active_resource_plan(WMGetActiveResourcePlanRequest request, org.apache.thrift.async.AsyncMethodCallback<WMGetActiveResourcePlanResponse> resultHandler) throws org.apache.thrift.TException;

    public void get_all_resource_plans(WMGetAllResourcePlanRequest request, org.apache.thrift.async.AsyncMethodCallback<WMGetAllResourcePlanResponse> resultHandler) throws org.apache.thrift.TException;

    public void alter_resource_plan(WMAlterResourcePlanRequest request, org.apache.thrift.async.AsyncMethodCallback<WMAlterResourcePlanResponse> resultHandler) throws org.apache.thrift.TException;

    public void validate_resource_plan(WMValidateResourcePlanRequest request, org.apache.thrift.async.AsyncMethodCallback<WMValidateResourcePlanResponse> resultHandler) throws org.apache.thrift.TException;

    public void drop_resource_plan(WMDropResourcePlanRequest request, org.apache.thrift.async.AsyncMethodCallback<WMDropResourcePlanResponse> resultHandler) throws org.apache.thrift.TException;

    public void create_wm_trigger(WMCreateTriggerRequest request, org.apache.thrift.async.AsyncMethodCallback<WMCreateTriggerResponse> resultHandler) throws org.apache.thrift.TException;

    public void alter_wm_trigger(WMAlterTriggerRequest request, org.apache.thrift.async.AsyncMethodCallback<WMAlterTriggerResponse> resultHandler) throws org.apache.thrift.TException;

    public void drop_wm_trigger(WMDropTriggerRequest request, org.apache.thrift.async.AsyncMethodCallback<WMDropTriggerResponse> resultHandler) throws org.apache.thrift.TException;

    public void get_triggers_for_resourceplan(WMGetTriggersForResourePlanRequest request, org.apache.thrift.async.AsyncMethodCallback<WMGetTriggersForResourePlanResponse> resultHandler) throws org.apache.thrift.TException;

    public void create_wm_pool(WMCreatePoolRequest request, org.apache.thrift.async.AsyncMethodCallback<WMCreatePoolResponse> resultHandler) throws org.apache.thrift.TException;

    public void alter_wm_pool(WMAlterPoolRequest request, org.apache.thrift.async.AsyncMethodCallback<WMAlterPoolResponse> resultHandler) throws org.apache.thrift.TException;

    public void drop_wm_pool(WMDropPoolRequest request, org.apache.thrift.async.AsyncMethodCallback<WMDropPoolResponse> resultHandler) throws org.apache.thrift.TException;

    public void create_or_update_wm_mapping(WMCreateOrUpdateMappingRequest request, org.apache.thrift.async.AsyncMethodCallback<WMCreateOrUpdateMappingResponse> resultHandler) throws org.apache.thrift.TException;

    public void drop_wm_mapping(WMDropMappingRequest request, org.apache.thrift.async.AsyncMethodCallback<WMDropMappingResponse> resultHandler) throws org.apache.thrift.TException;

    public void create_or_drop_wm_trigger_to_pool_mapping(WMCreateOrDropTriggerToPoolMappingRequest request, org.apache.thrift.async.AsyncMethodCallback<WMCreateOrDropTriggerToPoolMappingResponse> resultHandler) throws org.apache.thrift.TException;

    public void create_ischema(ISchema schema, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void alter_ischema(AlterISchemaRequest rqst, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void get_ischema(ISchemaName name, org.apache.thrift.async.AsyncMethodCallback<ISchema> resultHandler) throws org.apache.thrift.TException;

    public void drop_ischema(ISchemaName name, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void add_schema_version(SchemaVersion schemaVersion, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void get_schema_version(SchemaVersionDescriptor schemaVersion, org.apache.thrift.async.AsyncMethodCallback<SchemaVersion> resultHandler) throws org.apache.thrift.TException;

    public void get_schema_latest_version(ISchemaName schemaName, org.apache.thrift.async.AsyncMethodCallback<SchemaVersion> resultHandler) throws org.apache.thrift.TException;

    public void get_schema_all_versions(ISchemaName schemaName, org.apache.thrift.async.AsyncMethodCallback<java.util.List<SchemaVersion>> resultHandler) throws org.apache.thrift.TException;

    public void drop_schema_version(SchemaVersionDescriptor schemaVersion, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void get_schemas_by_cols(FindSchemasByColsRqst rqst, org.apache.thrift.async.AsyncMethodCallback<FindSchemasByColsResp> resultHandler) throws org.apache.thrift.TException;

    public void map_schema_version_to_serde(MapSchemaVersionToSerdeRequest rqst, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void set_schema_version_state(SetSchemaVersionStateRequest rqst, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void add_serde(SerDeInfo serde, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void get_serde(GetSerdeRequest rqst, org.apache.thrift.async.AsyncMethodCallback<SerDeInfo> resultHandler) throws org.apache.thrift.TException;

    public void get_lock_materialization_rebuild(java.lang.String dbName, java.lang.String tableName, long txnId, org.apache.thrift.async.AsyncMethodCallback<LockResponse> resultHandler) throws org.apache.thrift.TException;

    public void heartbeat_lock_materialization_rebuild(java.lang.String dbName, java.lang.String tableName, long txnId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;

    public void add_runtime_stats(RuntimeStat stat, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;

    public void get_runtime_stats(GetRuntimeStatsRequest rqst, org.apache.thrift.async.AsyncMethodCallback<java.util.List<RuntimeStat>> resultHandler) throws org.apache.thrift.TException;

  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class Client extends com.facebook.fb303.FacebookService.Client implements Iface {
    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class Factory implements org.apache.thrift.TServiceClientFactory<Client> {
      public Factory() {}
      public Client getClient(org.apache.thrift.protocol.TProtocol prot) {
        return new Client(prot);
      }
      public Client getClient(org.apache.thrift.protocol.TProtocol iprot, org.apache.thrift.protocol.TProtocol oprot) {
        return new Client(iprot, oprot);
      }
    }

    public Client(org.apache.thrift.protocol.TProtocol prot)
    {
      super(prot, prot);
    }

    public Client(org.apache.thrift.protocol.TProtocol iprot, org.apache.thrift.protocol.TProtocol oprot) {
      super(iprot, oprot);
    }

    public java.lang.String getMetaConf(java.lang.String key) throws MetaException, org.apache.thrift.TException
    {
      send_getMetaConf(key);
      return recv_getMetaConf();
    }

    public void send_getMetaConf(java.lang.String key) throws org.apache.thrift.TException
    {
      getMetaConf_args args = new getMetaConf_args();
      args.setKey(key);
      sendBase("getMetaConf", args);
    }

    public java.lang.String recv_getMetaConf() throws MetaException, org.apache.thrift.TException
    {
      getMetaConf_result result = new getMetaConf_result();
      receiveBase(result, "getMetaConf");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getMetaConf failed: unknown result");
    }

    public void setMetaConf(java.lang.String key, java.lang.String value) throws MetaException, org.apache.thrift.TException
    {
      send_setMetaConf(key, value);
      recv_setMetaConf();
    }

    public void send_setMetaConf(java.lang.String key, java.lang.String value) throws org.apache.thrift.TException
    {
      setMetaConf_args args = new setMetaConf_args();
      args.setKey(key);
      args.setValue(value);
      sendBase("setMetaConf", args);
    }

    public void recv_setMetaConf() throws MetaException, org.apache.thrift.TException
    {
      setMetaConf_result result = new setMetaConf_result();
      receiveBase(result, "setMetaConf");
      if (result.o1 != null) {
        throw result.o1;
      }
      return;
    }

    public boolean init_schema(java.lang.String dbType, java.lang.String username, java.lang.String password) throws MetaException, org.apache.thrift.TException
    {
      send_init_schema(dbType, username, password);
      return recv_init_schema();
    }

    public void send_init_schema(java.lang.String dbType, java.lang.String username, java.lang.String password) throws org.apache.thrift.TException
    {
      init_schema_args args = new init_schema_args();
      args.setDbType(dbType);
      args.setUsername(username);
      args.setPassword(password);
      sendBase("init_schema", args);
    }

    public boolean recv_init_schema() throws MetaException, org.apache.thrift.TException
    {
      init_schema_result result = new init_schema_result();
      receiveBase(result, "init_schema");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.ex != null) {
        throw result.ex;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "init_schema failed: unknown result");
    }

    public void create_catalog(CreateCatalogRequest catalog) throws AlreadyExistsException, InvalidObjectException, MetaException, org.apache.thrift.TException
    {
      send_create_catalog(catalog);
      recv_create_catalog();
    }

    public void send_create_catalog(CreateCatalogRequest catalog) throws org.apache.thrift.TException
    {
      create_catalog_args args = new create_catalog_args();
      args.setCatalog(catalog);
      sendBase("create_catalog", args);
    }

    public void recv_create_catalog() throws AlreadyExistsException, InvalidObjectException, MetaException, org.apache.thrift.TException
    {
      create_catalog_result result = new create_catalog_result();
      receiveBase(result, "create_catalog");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      return;
    }

    public void alter_catalog(AlterCatalogRequest rqst) throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      send_alter_catalog(rqst);
      recv_alter_catalog();
    }

    public void send_alter_catalog(AlterCatalogRequest rqst) throws org.apache.thrift.TException
    {
      alter_catalog_args args = new alter_catalog_args();
      args.setRqst(rqst);
      sendBase("alter_catalog", args);
    }

    public void recv_alter_catalog() throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      alter_catalog_result result = new alter_catalog_result();
      receiveBase(result, "alter_catalog");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      return;
    }

    public GetCatalogResponse get_catalog(GetCatalogRequest catName) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_get_catalog(catName);
      return recv_get_catalog();
    }

    public void send_get_catalog(GetCatalogRequest catName) throws org.apache.thrift.TException
    {
      get_catalog_args args = new get_catalog_args();
      args.setCatName(catName);
      sendBase("get_catalog", args);
    }

    public GetCatalogResponse recv_get_catalog() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      get_catalog_result result = new get_catalog_result();
      receiveBase(result, "get_catalog");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_catalog failed: unknown result");
    }

    public GetCatalogsResponse get_catalogs() throws MetaException, org.apache.thrift.TException
    {
      send_get_catalogs();
      return recv_get_catalogs();
    }

    public void send_get_catalogs() throws org.apache.thrift.TException
    {
      get_catalogs_args args = new get_catalogs_args();
      sendBase("get_catalogs", args);
    }

    public GetCatalogsResponse recv_get_catalogs() throws MetaException, org.apache.thrift.TException
    {
      get_catalogs_result result = new get_catalogs_result();
      receiveBase(result, "get_catalogs");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_catalogs failed: unknown result");
    }

    public void drop_catalog(DropCatalogRequest catName) throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      send_drop_catalog(catName);
      recv_drop_catalog();
    }

    public void send_drop_catalog(DropCatalogRequest catName) throws org.apache.thrift.TException
    {
      drop_catalog_args args = new drop_catalog_args();
      args.setCatName(catName);
      sendBase("drop_catalog", args);
    }

    public void recv_drop_catalog() throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      drop_catalog_result result = new drop_catalog_result();
      receiveBase(result, "drop_catalog");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      return;
    }

    public void create_database(Database database) throws AlreadyExistsException, InvalidObjectException, MetaException, org.apache.thrift.TException
    {
      send_create_database(database);
      recv_create_database();
    }

    public void send_create_database(Database database) throws org.apache.thrift.TException
    {
      create_database_args args = new create_database_args();
      args.setDatabase(database);
      sendBase("create_database", args);
    }

    public void recv_create_database() throws AlreadyExistsException, InvalidObjectException, MetaException, org.apache.thrift.TException
    {
      create_database_result result = new create_database_result();
      receiveBase(result, "create_database");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      return;
    }

    public Database get_database(java.lang.String name) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_get_database(name);
      return recv_get_database();
    }

    public void send_get_database(java.lang.String name) throws org.apache.thrift.TException
    {
      get_database_args args = new get_database_args();
      args.setName(name);
      sendBase("get_database", args);
    }

    public Database recv_get_database() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      get_database_result result = new get_database_result();
      receiveBase(result, "get_database");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_database failed: unknown result");
    }

    public void drop_database(java.lang.String name, boolean deleteData, boolean cascade) throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      send_drop_database(name, deleteData, cascade);
      recv_drop_database();
    }

    public void send_drop_database(java.lang.String name, boolean deleteData, boolean cascade) throws org.apache.thrift.TException
    {
      drop_database_args args = new drop_database_args();
      args.setName(name);
      args.setDeleteData(deleteData);
      args.setCascade(cascade);
      sendBase("drop_database", args);
    }

    public void recv_drop_database() throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      drop_database_result result = new drop_database_result();
      receiveBase(result, "drop_database");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      return;
    }

    public java.util.List<java.lang.String> get_databases(java.lang.String pattern) throws MetaException, org.apache.thrift.TException
    {
      send_get_databases(pattern);
      return recv_get_databases();
    }

    public void send_get_databases(java.lang.String pattern) throws org.apache.thrift.TException
    {
      get_databases_args args = new get_databases_args();
      args.setPattern(pattern);
      sendBase("get_databases", args);
    }

    public java.util.List<java.lang.String> recv_get_databases() throws MetaException, org.apache.thrift.TException
    {
      get_databases_result result = new get_databases_result();
      receiveBase(result, "get_databases");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_databases failed: unknown result");
    }

    public java.util.List<java.lang.String> get_all_databases() throws MetaException, org.apache.thrift.TException
    {
      send_get_all_databases();
      return recv_get_all_databases();
    }

    public void send_get_all_databases() throws org.apache.thrift.TException
    {
      get_all_databases_args args = new get_all_databases_args();
      sendBase("get_all_databases", args);
    }

    public java.util.List<java.lang.String> recv_get_all_databases() throws MetaException, org.apache.thrift.TException
    {
      get_all_databases_result result = new get_all_databases_result();
      receiveBase(result, "get_all_databases");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_all_databases failed: unknown result");
    }

    public void alter_database(java.lang.String dbname, Database db) throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      send_alter_database(dbname, db);
      recv_alter_database();
    }

    public void send_alter_database(java.lang.String dbname, Database db) throws org.apache.thrift.TException
    {
      alter_database_args args = new alter_database_args();
      args.setDbname(dbname);
      args.setDb(db);
      sendBase("alter_database", args);
    }

    public void recv_alter_database() throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      alter_database_result result = new alter_database_result();
      receiveBase(result, "alter_database");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      return;
    }

    public Type get_type(java.lang.String name) throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      send_get_type(name);
      return recv_get_type();
    }

    public void send_get_type(java.lang.String name) throws org.apache.thrift.TException
    {
      get_type_args args = new get_type_args();
      args.setName(name);
      sendBase("get_type", args);
    }

    public Type recv_get_type() throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      get_type_result result = new get_type_result();
      receiveBase(result, "get_type");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_type failed: unknown result");
    }

    public boolean create_type(Type type) throws AlreadyExistsException, InvalidObjectException, MetaException, org.apache.thrift.TException
    {
      send_create_type(type);
      return recv_create_type();
    }

    public void send_create_type(Type type) throws org.apache.thrift.TException
    {
      create_type_args args = new create_type_args();
      args.setType(type);
      sendBase("create_type", args);
    }

    public boolean recv_create_type() throws AlreadyExistsException, InvalidObjectException, MetaException, org.apache.thrift.TException
    {
      create_type_result result = new create_type_result();
      receiveBase(result, "create_type");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "create_type failed: unknown result");
    }

    public boolean drop_type(java.lang.String type) throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      send_drop_type(type);
      return recv_drop_type();
    }

    public void send_drop_type(java.lang.String type) throws org.apache.thrift.TException
    {
      drop_type_args args = new drop_type_args();
      args.setType(type);
      sendBase("drop_type", args);
    }

    public boolean recv_drop_type() throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      drop_type_result result = new drop_type_result();
      receiveBase(result, "drop_type");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "drop_type failed: unknown result");
    }

    public java.util.Map<java.lang.String,Type> get_type_all(java.lang.String name) throws MetaException, org.apache.thrift.TException
    {
      send_get_type_all(name);
      return recv_get_type_all();
    }

    public void send_get_type_all(java.lang.String name) throws org.apache.thrift.TException
    {
      get_type_all_args args = new get_type_all_args();
      args.setName(name);
      sendBase("get_type_all", args);
    }

    public java.util.Map<java.lang.String,Type> recv_get_type_all() throws MetaException, org.apache.thrift.TException
    {
      get_type_all_result result = new get_type_all_result();
      receiveBase(result, "get_type_all");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_type_all failed: unknown result");
    }

    public java.util.List<FieldSchema> get_fields(java.lang.String db_name, java.lang.String table_name) throws MetaException, UnknownTableException, UnknownDBException, org.apache.thrift.TException
    {
      send_get_fields(db_name, table_name);
      return recv_get_fields();
    }

    public void send_get_fields(java.lang.String db_name, java.lang.String table_name) throws org.apache.thrift.TException
    {
      get_fields_args args = new get_fields_args();
      args.setDb_name(db_name);
      args.setTable_name(table_name);
      sendBase("get_fields", args);
    }

    public java.util.List<FieldSchema> recv_get_fields() throws MetaException, UnknownTableException, UnknownDBException, org.apache.thrift.TException
    {
      get_fields_result result = new get_fields_result();
      receiveBase(result, "get_fields");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_fields failed: unknown result");
    }

    public java.util.List<FieldSchema> get_fields_with_environment_context(java.lang.String db_name, java.lang.String table_name, EnvironmentContext environment_context) throws MetaException, UnknownTableException, UnknownDBException, org.apache.thrift.TException
    {
      send_get_fields_with_environment_context(db_name, table_name, environment_context);
      return recv_get_fields_with_environment_context();
    }

    public void send_get_fields_with_environment_context(java.lang.String db_name, java.lang.String table_name, EnvironmentContext environment_context) throws org.apache.thrift.TException
    {
      get_fields_with_environment_context_args args = new get_fields_with_environment_context_args();
      args.setDb_name(db_name);
      args.setTable_name(table_name);
      args.setEnvironment_context(environment_context);
      sendBase("get_fields_with_environment_context", args);
    }

    public java.util.List<FieldSchema> recv_get_fields_with_environment_context() throws MetaException, UnknownTableException, UnknownDBException, org.apache.thrift.TException
    {
      get_fields_with_environment_context_result result = new get_fields_with_environment_context_result();
      receiveBase(result, "get_fields_with_environment_context");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_fields_with_environment_context failed: unknown result");
    }

    public java.util.List<FieldSchema> get_schema(java.lang.String db_name, java.lang.String table_name) throws MetaException, UnknownTableException, UnknownDBException, org.apache.thrift.TException
    {
      send_get_schema(db_name, table_name);
      return recv_get_schema();
    }

    public void send_get_schema(java.lang.String db_name, java.lang.String table_name) throws org.apache.thrift.TException
    {
      get_schema_args args = new get_schema_args();
      args.setDb_name(db_name);
      args.setTable_name(table_name);
      sendBase("get_schema", args);
    }

    public java.util.List<FieldSchema> recv_get_schema() throws MetaException, UnknownTableException, UnknownDBException, org.apache.thrift.TException
    {
      get_schema_result result = new get_schema_result();
      receiveBase(result, "get_schema");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_schema failed: unknown result");
    }

    public java.util.List<FieldSchema> get_schema_with_environment_context(java.lang.String db_name, java.lang.String table_name, EnvironmentContext environment_context) throws MetaException, UnknownTableException, UnknownDBException, org.apache.thrift.TException
    {
      send_get_schema_with_environment_context(db_name, table_name, environment_context);
      return recv_get_schema_with_environment_context();
    }

    public void send_get_schema_with_environment_context(java.lang.String db_name, java.lang.String table_name, EnvironmentContext environment_context) throws org.apache.thrift.TException
    {
      get_schema_with_environment_context_args args = new get_schema_with_environment_context_args();
      args.setDb_name(db_name);
      args.setTable_name(table_name);
      args.setEnvironment_context(environment_context);
      sendBase("get_schema_with_environment_context", args);
    }

    public java.util.List<FieldSchema> recv_get_schema_with_environment_context() throws MetaException, UnknownTableException, UnknownDBException, org.apache.thrift.TException
    {
      get_schema_with_environment_context_result result = new get_schema_with_environment_context_result();
      receiveBase(result, "get_schema_with_environment_context");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_schema_with_environment_context failed: unknown result");
    }

    public void create_table(Table tbl) throws AlreadyExistsException, InvalidObjectException, MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      send_create_table(tbl);
      recv_create_table();
    }

    public void send_create_table(Table tbl) throws org.apache.thrift.TException
    {
      create_table_args args = new create_table_args();
      args.setTbl(tbl);
      sendBase("create_table", args);
    }

    public void recv_create_table() throws AlreadyExistsException, InvalidObjectException, MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      create_table_result result = new create_table_result();
      receiveBase(result, "create_table");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      if (result.o4 != null) {
        throw result.o4;
      }
      return;
    }

    public void create_table_with_environment_context(Table tbl, EnvironmentContext environment_context) throws AlreadyExistsException, InvalidObjectException, MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      send_create_table_with_environment_context(tbl, environment_context);
      recv_create_table_with_environment_context();
    }

    public void send_create_table_with_environment_context(Table tbl, EnvironmentContext environment_context) throws org.apache.thrift.TException
    {
      create_table_with_environment_context_args args = new create_table_with_environment_context_args();
      args.setTbl(tbl);
      args.setEnvironment_context(environment_context);
      sendBase("create_table_with_environment_context", args);
    }

    public void recv_create_table_with_environment_context() throws AlreadyExistsException, InvalidObjectException, MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      create_table_with_environment_context_result result = new create_table_with_environment_context_result();
      receiveBase(result, "create_table_with_environment_context");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      if (result.o4 != null) {
        throw result.o4;
      }
      return;
    }

    public void create_table_with_constraints(Table tbl, java.util.List<SQLPrimaryKey> primaryKeys, java.util.List<SQLForeignKey> foreignKeys, java.util.List<SQLUniqueConstraint> uniqueConstraints, java.util.List<SQLNotNullConstraint> notNullConstraints, java.util.List<SQLDefaultConstraint> defaultConstraints, java.util.List<SQLCheckConstraint> checkConstraints) throws AlreadyExistsException, InvalidObjectException, MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      send_create_table_with_constraints(tbl, primaryKeys, foreignKeys, uniqueConstraints, notNullConstraints, defaultConstraints, checkConstraints);
      recv_create_table_with_constraints();
    }

    public void send_create_table_with_constraints(Table tbl, java.util.List<SQLPrimaryKey> primaryKeys, java.util.List<SQLForeignKey> foreignKeys, java.util.List<SQLUniqueConstraint> uniqueConstraints, java.util.List<SQLNotNullConstraint> notNullConstraints, java.util.List<SQLDefaultConstraint> defaultConstraints, java.util.List<SQLCheckConstraint> checkConstraints) throws org.apache.thrift.TException
    {
      create_table_with_constraints_args args = new create_table_with_constraints_args();
      args.setTbl(tbl);
      args.setPrimaryKeys(primaryKeys);
      args.setForeignKeys(foreignKeys);
      args.setUniqueConstraints(uniqueConstraints);
      args.setNotNullConstraints(notNullConstraints);
      args.setDefaultConstraints(defaultConstraints);
      args.setCheckConstraints(checkConstraints);
      sendBase("create_table_with_constraints", args);
    }

    public void recv_create_table_with_constraints() throws AlreadyExistsException, InvalidObjectException, MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      create_table_with_constraints_result result = new create_table_with_constraints_result();
      receiveBase(result, "create_table_with_constraints");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      if (result.o4 != null) {
        throw result.o4;
      }
      return;
    }

    public void drop_constraint(DropConstraintRequest req) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_drop_constraint(req);
      recv_drop_constraint();
    }

    public void send_drop_constraint(DropConstraintRequest req) throws org.apache.thrift.TException
    {
      drop_constraint_args args = new drop_constraint_args();
      args.setReq(req);
      sendBase("drop_constraint", args);
    }

    public void recv_drop_constraint() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      drop_constraint_result result = new drop_constraint_result();
      receiveBase(result, "drop_constraint");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      return;
    }

    public void add_primary_key(AddPrimaryKeyRequest req) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_add_primary_key(req);
      recv_add_primary_key();
    }

    public void send_add_primary_key(AddPrimaryKeyRequest req) throws org.apache.thrift.TException
    {
      add_primary_key_args args = new add_primary_key_args();
      args.setReq(req);
      sendBase("add_primary_key", args);
    }

    public void recv_add_primary_key() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      add_primary_key_result result = new add_primary_key_result();
      receiveBase(result, "add_primary_key");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      return;
    }

    public void add_foreign_key(AddForeignKeyRequest req) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_add_foreign_key(req);
      recv_add_foreign_key();
    }

    public void send_add_foreign_key(AddForeignKeyRequest req) throws org.apache.thrift.TException
    {
      add_foreign_key_args args = new add_foreign_key_args();
      args.setReq(req);
      sendBase("add_foreign_key", args);
    }

    public void recv_add_foreign_key() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      add_foreign_key_result result = new add_foreign_key_result();
      receiveBase(result, "add_foreign_key");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      return;
    }

    public void add_unique_constraint(AddUniqueConstraintRequest req) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_add_unique_constraint(req);
      recv_add_unique_constraint();
    }

    public void send_add_unique_constraint(AddUniqueConstraintRequest req) throws org.apache.thrift.TException
    {
      add_unique_constraint_args args = new add_unique_constraint_args();
      args.setReq(req);
      sendBase("add_unique_constraint", args);
    }

    public void recv_add_unique_constraint() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      add_unique_constraint_result result = new add_unique_constraint_result();
      receiveBase(result, "add_unique_constraint");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      return;
    }

    public void add_not_null_constraint(AddNotNullConstraintRequest req) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_add_not_null_constraint(req);
      recv_add_not_null_constraint();
    }

    public void send_add_not_null_constraint(AddNotNullConstraintRequest req) throws org.apache.thrift.TException
    {
      add_not_null_constraint_args args = new add_not_null_constraint_args();
      args.setReq(req);
      sendBase("add_not_null_constraint", args);
    }

    public void recv_add_not_null_constraint() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      add_not_null_constraint_result result = new add_not_null_constraint_result();
      receiveBase(result, "add_not_null_constraint");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      return;
    }

    public void add_default_constraint(AddDefaultConstraintRequest req) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_add_default_constraint(req);
      recv_add_default_constraint();
    }

    public void send_add_default_constraint(AddDefaultConstraintRequest req) throws org.apache.thrift.TException
    {
      add_default_constraint_args args = new add_default_constraint_args();
      args.setReq(req);
      sendBase("add_default_constraint", args);
    }

    public void recv_add_default_constraint() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      add_default_constraint_result result = new add_default_constraint_result();
      receiveBase(result, "add_default_constraint");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      return;
    }

    public void add_check_constraint(AddCheckConstraintRequest req) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_add_check_constraint(req);
      recv_add_check_constraint();
    }

    public void send_add_check_constraint(AddCheckConstraintRequest req) throws org.apache.thrift.TException
    {
      add_check_constraint_args args = new add_check_constraint_args();
      args.setReq(req);
      sendBase("add_check_constraint", args);
    }

    public void recv_add_check_constraint() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      add_check_constraint_result result = new add_check_constraint_result();
      receiveBase(result, "add_check_constraint");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      return;
    }

    public void drop_table(java.lang.String dbname, java.lang.String name, boolean deleteData) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_drop_table(dbname, name, deleteData);
      recv_drop_table();
    }

    public void send_drop_table(java.lang.String dbname, java.lang.String name, boolean deleteData) throws org.apache.thrift.TException
    {
      drop_table_args args = new drop_table_args();
      args.setDbname(dbname);
      args.setName(name);
      args.setDeleteData(deleteData);
      sendBase("drop_table", args);
    }

    public void recv_drop_table() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      drop_table_result result = new drop_table_result();
      receiveBase(result, "drop_table");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      return;
    }

    public void drop_table_with_environment_context(java.lang.String dbname, java.lang.String name, boolean deleteData, EnvironmentContext environment_context) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_drop_table_with_environment_context(dbname, name, deleteData, environment_context);
      recv_drop_table_with_environment_context();
    }

    public void send_drop_table_with_environment_context(java.lang.String dbname, java.lang.String name, boolean deleteData, EnvironmentContext environment_context) throws org.apache.thrift.TException
    {
      drop_table_with_environment_context_args args = new drop_table_with_environment_context_args();
      args.setDbname(dbname);
      args.setName(name);
      args.setDeleteData(deleteData);
      args.setEnvironment_context(environment_context);
      sendBase("drop_table_with_environment_context", args);
    }

    public void recv_drop_table_with_environment_context() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      drop_table_with_environment_context_result result = new drop_table_with_environment_context_result();
      receiveBase(result, "drop_table_with_environment_context");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      return;
    }

    public void truncate_table(java.lang.String dbName, java.lang.String tableName, java.util.List<java.lang.String> partNames) throws MetaException, org.apache.thrift.TException
    {
      send_truncate_table(dbName, tableName, partNames);
      recv_truncate_table();
    }

    public void send_truncate_table(java.lang.String dbName, java.lang.String tableName, java.util.List<java.lang.String> partNames) throws org.apache.thrift.TException
    {
      truncate_table_args args = new truncate_table_args();
      args.setDbName(dbName);
      args.setTableName(tableName);
      args.setPartNames(partNames);
      sendBase("truncate_table", args);
    }

    public void recv_truncate_table() throws MetaException, org.apache.thrift.TException
    {
      truncate_table_result result = new truncate_table_result();
      receiveBase(result, "truncate_table");
      if (result.o1 != null) {
        throw result.o1;
      }
      return;
    }

    public java.util.List<java.lang.String> get_tables(java.lang.String db_name, java.lang.String pattern) throws MetaException, org.apache.thrift.TException
    {
      send_get_tables(db_name, pattern);
      return recv_get_tables();
    }

    public void send_get_tables(java.lang.String db_name, java.lang.String pattern) throws org.apache.thrift.TException
    {
      get_tables_args args = new get_tables_args();
      args.setDb_name(db_name);
      args.setPattern(pattern);
      sendBase("get_tables", args);
    }

    public java.util.List<java.lang.String> recv_get_tables() throws MetaException, org.apache.thrift.TException
    {
      get_tables_result result = new get_tables_result();
      receiveBase(result, "get_tables");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_tables failed: unknown result");
    }

    public java.util.List<java.lang.String> get_tables_by_type(java.lang.String db_name, java.lang.String pattern, java.lang.String tableType) throws MetaException, org.apache.thrift.TException
    {
      send_get_tables_by_type(db_name, pattern, tableType);
      return recv_get_tables_by_type();
    }

    public void send_get_tables_by_type(java.lang.String db_name, java.lang.String pattern, java.lang.String tableType) throws org.apache.thrift.TException
    {
      get_tables_by_type_args args = new get_tables_by_type_args();
      args.setDb_name(db_name);
      args.setPattern(pattern);
      args.setTableType(tableType);
      sendBase("get_tables_by_type", args);
    }

    public java.util.List<java.lang.String> recv_get_tables_by_type() throws MetaException, org.apache.thrift.TException
    {
      get_tables_by_type_result result = new get_tables_by_type_result();
      receiveBase(result, "get_tables_by_type");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_tables_by_type failed: unknown result");
    }

    public java.util.List<java.lang.String> get_materialized_views_for_rewriting(java.lang.String db_name) throws MetaException, org.apache.thrift.TException
    {
      send_get_materialized_views_for_rewriting(db_name);
      return recv_get_materialized_views_for_rewriting();
    }

    public void send_get_materialized_views_for_rewriting(java.lang.String db_name) throws org.apache.thrift.TException
    {
      get_materialized_views_for_rewriting_args args = new get_materialized_views_for_rewriting_args();
      args.setDb_name(db_name);
      sendBase("get_materialized_views_for_rewriting", args);
    }

    public java.util.List<java.lang.String> recv_get_materialized_views_for_rewriting() throws MetaException, org.apache.thrift.TException
    {
      get_materialized_views_for_rewriting_result result = new get_materialized_views_for_rewriting_result();
      receiveBase(result, "get_materialized_views_for_rewriting");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_materialized_views_for_rewriting failed: unknown result");
    }

    public java.util.List<TableMeta> get_table_meta(java.lang.String db_patterns, java.lang.String tbl_patterns, java.util.List<java.lang.String> tbl_types) throws MetaException, org.apache.thrift.TException
    {
      send_get_table_meta(db_patterns, tbl_patterns, tbl_types);
      return recv_get_table_meta();
    }

    public void send_get_table_meta(java.lang.String db_patterns, java.lang.String tbl_patterns, java.util.List<java.lang.String> tbl_types) throws org.apache.thrift.TException
    {
      get_table_meta_args args = new get_table_meta_args();
      args.setDb_patterns(db_patterns);
      args.setTbl_patterns(tbl_patterns);
      args.setTbl_types(tbl_types);
      sendBase("get_table_meta", args);
    }

    public java.util.List<TableMeta> recv_get_table_meta() throws MetaException, org.apache.thrift.TException
    {
      get_table_meta_result result = new get_table_meta_result();
      receiveBase(result, "get_table_meta");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_table_meta failed: unknown result");
    }

    public java.util.List<java.lang.String> get_all_tables(java.lang.String db_name) throws MetaException, org.apache.thrift.TException
    {
      send_get_all_tables(db_name);
      return recv_get_all_tables();
    }

    public void send_get_all_tables(java.lang.String db_name) throws org.apache.thrift.TException
    {
      get_all_tables_args args = new get_all_tables_args();
      args.setDb_name(db_name);
      sendBase("get_all_tables", args);
    }

    public java.util.List<java.lang.String> recv_get_all_tables() throws MetaException, org.apache.thrift.TException
    {
      get_all_tables_result result = new get_all_tables_result();
      receiveBase(result, "get_all_tables");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_all_tables failed: unknown result");
    }

    public Table get_table(java.lang.String dbname, java.lang.String tbl_name) throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      send_get_table(dbname, tbl_name);
      return recv_get_table();
    }

    public void send_get_table(java.lang.String dbname, java.lang.String tbl_name) throws org.apache.thrift.TException
    {
      get_table_args args = new get_table_args();
      args.setDbname(dbname);
      args.setTbl_name(tbl_name);
      sendBase("get_table", args);
    }

    public Table recv_get_table() throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      get_table_result result = new get_table_result();
      receiveBase(result, "get_table");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_table failed: unknown result");
    }

    public java.util.List<Table> get_table_objects_by_name(java.lang.String dbname, java.util.List<java.lang.String> tbl_names) throws org.apache.thrift.TException
    {
      send_get_table_objects_by_name(dbname, tbl_names);
      return recv_get_table_objects_by_name();
    }

    public void send_get_table_objects_by_name(java.lang.String dbname, java.util.List<java.lang.String> tbl_names) throws org.apache.thrift.TException
    {
      get_table_objects_by_name_args args = new get_table_objects_by_name_args();
      args.setDbname(dbname);
      args.setTbl_names(tbl_names);
      sendBase("get_table_objects_by_name", args);
    }

    public java.util.List<Table> recv_get_table_objects_by_name() throws org.apache.thrift.TException
    {
      get_table_objects_by_name_result result = new get_table_objects_by_name_result();
      receiveBase(result, "get_table_objects_by_name");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_table_objects_by_name failed: unknown result");
    }

    public GetTableResult get_table_req(GetTableRequest req) throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      send_get_table_req(req);
      return recv_get_table_req();
    }

    public void send_get_table_req(GetTableRequest req) throws org.apache.thrift.TException
    {
      get_table_req_args args = new get_table_req_args();
      args.setReq(req);
      sendBase("get_table_req", args);
    }

    public GetTableResult recv_get_table_req() throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      get_table_req_result result = new get_table_req_result();
      receiveBase(result, "get_table_req");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_table_req failed: unknown result");
    }

    public GetTablesResult get_table_objects_by_name_req(GetTablesRequest req) throws MetaException, InvalidOperationException, UnknownDBException, org.apache.thrift.TException
    {
      send_get_table_objects_by_name_req(req);
      return recv_get_table_objects_by_name_req();
    }

    public void send_get_table_objects_by_name_req(GetTablesRequest req) throws org.apache.thrift.TException
    {
      get_table_objects_by_name_req_args args = new get_table_objects_by_name_req_args();
      args.setReq(req);
      sendBase("get_table_objects_by_name_req", args);
    }

    public GetTablesResult recv_get_table_objects_by_name_req() throws MetaException, InvalidOperationException, UnknownDBException, org.apache.thrift.TException
    {
      get_table_objects_by_name_req_result result = new get_table_objects_by_name_req_result();
      receiveBase(result, "get_table_objects_by_name_req");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_table_objects_by_name_req failed: unknown result");
    }

    public Materialization get_materialization_invalidation_info(CreationMetadata creation_metadata, java.lang.String validTxnList) throws MetaException, InvalidOperationException, UnknownDBException, org.apache.thrift.TException
    {
      send_get_materialization_invalidation_info(creation_metadata, validTxnList);
      return recv_get_materialization_invalidation_info();
    }

    public void send_get_materialization_invalidation_info(CreationMetadata creation_metadata, java.lang.String validTxnList) throws org.apache.thrift.TException
    {
      get_materialization_invalidation_info_args args = new get_materialization_invalidation_info_args();
      args.setCreation_metadata(creation_metadata);
      args.setValidTxnList(validTxnList);
      sendBase("get_materialization_invalidation_info", args);
    }

    public Materialization recv_get_materialization_invalidation_info() throws MetaException, InvalidOperationException, UnknownDBException, org.apache.thrift.TException
    {
      get_materialization_invalidation_info_result result = new get_materialization_invalidation_info_result();
      receiveBase(result, "get_materialization_invalidation_info");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_materialization_invalidation_info failed: unknown result");
    }

    public void update_creation_metadata(java.lang.String catName, java.lang.String dbname, java.lang.String tbl_name, CreationMetadata creation_metadata) throws MetaException, InvalidOperationException, UnknownDBException, org.apache.thrift.TException
    {
      send_update_creation_metadata(catName, dbname, tbl_name, creation_metadata);
      recv_update_creation_metadata();
    }

    public void send_update_creation_metadata(java.lang.String catName, java.lang.String dbname, java.lang.String tbl_name, CreationMetadata creation_metadata) throws org.apache.thrift.TException
    {
      update_creation_metadata_args args = new update_creation_metadata_args();
      args.setCatName(catName);
      args.setDbname(dbname);
      args.setTbl_name(tbl_name);
      args.setCreation_metadata(creation_metadata);
      sendBase("update_creation_metadata", args);
    }

    public void recv_update_creation_metadata() throws MetaException, InvalidOperationException, UnknownDBException, org.apache.thrift.TException
    {
      update_creation_metadata_result result = new update_creation_metadata_result();
      receiveBase(result, "update_creation_metadata");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      return;
    }

    public java.util.List<java.lang.String> get_table_names_by_filter(java.lang.String dbname, java.lang.String filter, short max_tables) throws MetaException, InvalidOperationException, UnknownDBException, org.apache.thrift.TException
    {
      send_get_table_names_by_filter(dbname, filter, max_tables);
      return recv_get_table_names_by_filter();
    }

    public void send_get_table_names_by_filter(java.lang.String dbname, java.lang.String filter, short max_tables) throws org.apache.thrift.TException
    {
      get_table_names_by_filter_args args = new get_table_names_by_filter_args();
      args.setDbname(dbname);
      args.setFilter(filter);
      args.setMax_tables(max_tables);
      sendBase("get_table_names_by_filter", args);
    }

    public java.util.List<java.lang.String> recv_get_table_names_by_filter() throws MetaException, InvalidOperationException, UnknownDBException, org.apache.thrift.TException
    {
      get_table_names_by_filter_result result = new get_table_names_by_filter_result();
      receiveBase(result, "get_table_names_by_filter");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_table_names_by_filter failed: unknown result");
    }

    public void alter_table(java.lang.String dbname, java.lang.String tbl_name, Table new_tbl) throws InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      send_alter_table(dbname, tbl_name, new_tbl);
      recv_alter_table();
    }

    public void send_alter_table(java.lang.String dbname, java.lang.String tbl_name, Table new_tbl) throws org.apache.thrift.TException
    {
      alter_table_args args = new alter_table_args();
      args.setDbname(dbname);
      args.setTbl_name(tbl_name);
      args.setNew_tbl(new_tbl);
      sendBase("alter_table", args);
    }

    public void recv_alter_table() throws InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      alter_table_result result = new alter_table_result();
      receiveBase(result, "alter_table");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      return;
    }

    public void alter_table_with_environment_context(java.lang.String dbname, java.lang.String tbl_name, Table new_tbl, EnvironmentContext environment_context) throws InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      send_alter_table_with_environment_context(dbname, tbl_name, new_tbl, environment_context);
      recv_alter_table_with_environment_context();
    }

    public void send_alter_table_with_environment_context(java.lang.String dbname, java.lang.String tbl_name, Table new_tbl, EnvironmentContext environment_context) throws org.apache.thrift.TException
    {
      alter_table_with_environment_context_args args = new alter_table_with_environment_context_args();
      args.setDbname(dbname);
      args.setTbl_name(tbl_name);
      args.setNew_tbl(new_tbl);
      args.setEnvironment_context(environment_context);
      sendBase("alter_table_with_environment_context", args);
    }

    public void recv_alter_table_with_environment_context() throws InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      alter_table_with_environment_context_result result = new alter_table_with_environment_context_result();
      receiveBase(result, "alter_table_with_environment_context");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      return;
    }

    public void alter_table_with_cascade(java.lang.String dbname, java.lang.String tbl_name, Table new_tbl, boolean cascade) throws InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      send_alter_table_with_cascade(dbname, tbl_name, new_tbl, cascade);
      recv_alter_table_with_cascade();
    }

    public void send_alter_table_with_cascade(java.lang.String dbname, java.lang.String tbl_name, Table new_tbl, boolean cascade) throws org.apache.thrift.TException
    {
      alter_table_with_cascade_args args = new alter_table_with_cascade_args();
      args.setDbname(dbname);
      args.setTbl_name(tbl_name);
      args.setNew_tbl(new_tbl);
      args.setCascade(cascade);
      sendBase("alter_table_with_cascade", args);
    }

    public void recv_alter_table_with_cascade() throws InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      alter_table_with_cascade_result result = new alter_table_with_cascade_result();
      receiveBase(result, "alter_table_with_cascade");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      return;
    }

    public Partition add_partition(Partition new_part) throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException
    {
      send_add_partition(new_part);
      return recv_add_partition();
    }

    public void send_add_partition(Partition new_part) throws org.apache.thrift.TException
    {
      add_partition_args args = new add_partition_args();
      args.setNew_part(new_part);
      sendBase("add_partition", args);
    }

    public Partition recv_add_partition() throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException
    {
      add_partition_result result = new add_partition_result();
      receiveBase(result, "add_partition");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "add_partition failed: unknown result");
    }

    public Partition add_partition_with_environment_context(Partition new_part, EnvironmentContext environment_context) throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException
    {
      send_add_partition_with_environment_context(new_part, environment_context);
      return recv_add_partition_with_environment_context();
    }

    public void send_add_partition_with_environment_context(Partition new_part, EnvironmentContext environment_context) throws org.apache.thrift.TException
    {
      add_partition_with_environment_context_args args = new add_partition_with_environment_context_args();
      args.setNew_part(new_part);
      args.setEnvironment_context(environment_context);
      sendBase("add_partition_with_environment_context", args);
    }

    public Partition recv_add_partition_with_environment_context() throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException
    {
      add_partition_with_environment_context_result result = new add_partition_with_environment_context_result();
      receiveBase(result, "add_partition_with_environment_context");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "add_partition_with_environment_context failed: unknown result");
    }

    public int add_partitions(java.util.List<Partition> new_parts) throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException
    {
      send_add_partitions(new_parts);
      return recv_add_partitions();
    }

    public void send_add_partitions(java.util.List<Partition> new_parts) throws org.apache.thrift.TException
    {
      add_partitions_args args = new add_partitions_args();
      args.setNew_parts(new_parts);
      sendBase("add_partitions", args);
    }

    public int recv_add_partitions() throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException
    {
      add_partitions_result result = new add_partitions_result();
      receiveBase(result, "add_partitions");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "add_partitions failed: unknown result");
    }

    public int add_partitions_pspec(java.util.List<PartitionSpec> new_parts) throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException
    {
      send_add_partitions_pspec(new_parts);
      return recv_add_partitions_pspec();
    }

    public void send_add_partitions_pspec(java.util.List<PartitionSpec> new_parts) throws org.apache.thrift.TException
    {
      add_partitions_pspec_args args = new add_partitions_pspec_args();
      args.setNew_parts(new_parts);
      sendBase("add_partitions_pspec", args);
    }

    public int recv_add_partitions_pspec() throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException
    {
      add_partitions_pspec_result result = new add_partitions_pspec_result();
      receiveBase(result, "add_partitions_pspec");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "add_partitions_pspec failed: unknown result");
    }

    public Partition append_partition(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals) throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException
    {
      send_append_partition(db_name, tbl_name, part_vals);
      return recv_append_partition();
    }

    public void send_append_partition(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals) throws org.apache.thrift.TException
    {
      append_partition_args args = new append_partition_args();
      args.setDb_name(db_name);
      args.setTbl_name(tbl_name);
      args.setPart_vals(part_vals);
      sendBase("append_partition", args);
    }

    public Partition recv_append_partition() throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException
    {
      append_partition_result result = new append_partition_result();
      receiveBase(result, "append_partition");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "append_partition failed: unknown result");
    }

    public AddPartitionsResult add_partitions_req(AddPartitionsRequest request) throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException
    {
      send_add_partitions_req(request);
      return recv_add_partitions_req();
    }

    public void send_add_partitions_req(AddPartitionsRequest request) throws org.apache.thrift.TException
    {
      add_partitions_req_args args = new add_partitions_req_args();
      args.setRequest(request);
      sendBase("add_partitions_req", args);
    }

    public AddPartitionsResult recv_add_partitions_req() throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException
    {
      add_partitions_req_result result = new add_partitions_req_result();
      receiveBase(result, "add_partitions_req");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "add_partitions_req failed: unknown result");
    }

    public Partition append_partition_with_environment_context(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, EnvironmentContext environment_context) throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException
    {
      send_append_partition_with_environment_context(db_name, tbl_name, part_vals, environment_context);
      return recv_append_partition_with_environment_context();
    }

    public void send_append_partition_with_environment_context(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, EnvironmentContext environment_context) throws org.apache.thrift.TException
    {
      append_partition_with_environment_context_args args = new append_partition_with_environment_context_args();
      args.setDb_name(db_name);
      args.setTbl_name(tbl_name);
      args.setPart_vals(part_vals);
      args.setEnvironment_context(environment_context);
      sendBase("append_partition_with_environment_context", args);
    }

    public Partition recv_append_partition_with_environment_context() throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException
    {
      append_partition_with_environment_context_result result = new append_partition_with_environment_context_result();
      receiveBase(result, "append_partition_with_environment_context");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "append_partition_with_environment_context failed: unknown result");
    }

    public Partition append_partition_by_name(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name) throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException
    {
      send_append_partition_by_name(db_name, tbl_name, part_name);
      return recv_append_partition_by_name();
    }

    public void send_append_partition_by_name(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name) throws org.apache.thrift.TException
    {
      append_partition_by_name_args args = new append_partition_by_name_args();
      args.setDb_name(db_name);
      args.setTbl_name(tbl_name);
      args.setPart_name(part_name);
      sendBase("append_partition_by_name", args);
    }

    public Partition recv_append_partition_by_name() throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException
    {
      append_partition_by_name_result result = new append_partition_by_name_result();
      receiveBase(result, "append_partition_by_name");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "append_partition_by_name failed: unknown result");
    }

    public Partition append_partition_by_name_with_environment_context(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, EnvironmentContext environment_context) throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException
    {
      send_append_partition_by_name_with_environment_context(db_name, tbl_name, part_name, environment_context);
      return recv_append_partition_by_name_with_environment_context();
    }

    public void send_append_partition_by_name_with_environment_context(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, EnvironmentContext environment_context) throws org.apache.thrift.TException
    {
      append_partition_by_name_with_environment_context_args args = new append_partition_by_name_with_environment_context_args();
      args.setDb_name(db_name);
      args.setTbl_name(tbl_name);
      args.setPart_name(part_name);
      args.setEnvironment_context(environment_context);
      sendBase("append_partition_by_name_with_environment_context", args);
    }

    public Partition recv_append_partition_by_name_with_environment_context() throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException
    {
      append_partition_by_name_with_environment_context_result result = new append_partition_by_name_with_environment_context_result();
      receiveBase(result, "append_partition_by_name_with_environment_context");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "append_partition_by_name_with_environment_context failed: unknown result");
    }

    public boolean drop_partition(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, boolean deleteData) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_drop_partition(db_name, tbl_name, part_vals, deleteData);
      return recv_drop_partition();
    }

    public void send_drop_partition(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, boolean deleteData) throws org.apache.thrift.TException
    {
      drop_partition_args args = new drop_partition_args();
      args.setDb_name(db_name);
      args.setTbl_name(tbl_name);
      args.setPart_vals(part_vals);
      args.setDeleteData(deleteData);
      sendBase("drop_partition", args);
    }

    public boolean recv_drop_partition() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      drop_partition_result result = new drop_partition_result();
      receiveBase(result, "drop_partition");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "drop_partition failed: unknown result");
    }

    public boolean drop_partition_with_environment_context(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, boolean deleteData, EnvironmentContext environment_context) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_drop_partition_with_environment_context(db_name, tbl_name, part_vals, deleteData, environment_context);
      return recv_drop_partition_with_environment_context();
    }

    public void send_drop_partition_with_environment_context(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, boolean deleteData, EnvironmentContext environment_context) throws org.apache.thrift.TException
    {
      drop_partition_with_environment_context_args args = new drop_partition_with_environment_context_args();
      args.setDb_name(db_name);
      args.setTbl_name(tbl_name);
      args.setPart_vals(part_vals);
      args.setDeleteData(deleteData);
      args.setEnvironment_context(environment_context);
      sendBase("drop_partition_with_environment_context", args);
    }

    public boolean recv_drop_partition_with_environment_context() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      drop_partition_with_environment_context_result result = new drop_partition_with_environment_context_result();
      receiveBase(result, "drop_partition_with_environment_context");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "drop_partition_with_environment_context failed: unknown result");
    }

    public boolean drop_partition_by_name(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, boolean deleteData) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_drop_partition_by_name(db_name, tbl_name, part_name, deleteData);
      return recv_drop_partition_by_name();
    }

    public void send_drop_partition_by_name(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, boolean deleteData) throws org.apache.thrift.TException
    {
      drop_partition_by_name_args args = new drop_partition_by_name_args();
      args.setDb_name(db_name);
      args.setTbl_name(tbl_name);
      args.setPart_name(part_name);
      args.setDeleteData(deleteData);
      sendBase("drop_partition_by_name", args);
    }

    public boolean recv_drop_partition_by_name() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      drop_partition_by_name_result result = new drop_partition_by_name_result();
      receiveBase(result, "drop_partition_by_name");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "drop_partition_by_name failed: unknown result");
    }

    public boolean drop_partition_by_name_with_environment_context(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, boolean deleteData, EnvironmentContext environment_context) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_drop_partition_by_name_with_environment_context(db_name, tbl_name, part_name, deleteData, environment_context);
      return recv_drop_partition_by_name_with_environment_context();
    }

    public void send_drop_partition_by_name_with_environment_context(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, boolean deleteData, EnvironmentContext environment_context) throws org.apache.thrift.TException
    {
      drop_partition_by_name_with_environment_context_args args = new drop_partition_by_name_with_environment_context_args();
      args.setDb_name(db_name);
      args.setTbl_name(tbl_name);
      args.setPart_name(part_name);
      args.setDeleteData(deleteData);
      args.setEnvironment_context(environment_context);
      sendBase("drop_partition_by_name_with_environment_context", args);
    }

    public boolean recv_drop_partition_by_name_with_environment_context() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      drop_partition_by_name_with_environment_context_result result = new drop_partition_by_name_with_environment_context_result();
      receiveBase(result, "drop_partition_by_name_with_environment_context");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "drop_partition_by_name_with_environment_context failed: unknown result");
    }

    public DropPartitionsResult drop_partitions_req(DropPartitionsRequest req) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_drop_partitions_req(req);
      return recv_drop_partitions_req();
    }

    public void send_drop_partitions_req(DropPartitionsRequest req) throws org.apache.thrift.TException
    {
      drop_partitions_req_args args = new drop_partitions_req_args();
      args.setReq(req);
      sendBase("drop_partitions_req", args);
    }

    public DropPartitionsResult recv_drop_partitions_req() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      drop_partitions_req_result result = new drop_partitions_req_result();
      receiveBase(result, "drop_partitions_req");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "drop_partitions_req failed: unknown result");
    }

    public Partition get_partition(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals) throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      send_get_partition(db_name, tbl_name, part_vals);
      return recv_get_partition();
    }

    public void send_get_partition(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals) throws org.apache.thrift.TException
    {
      get_partition_args args = new get_partition_args();
      args.setDb_name(db_name);
      args.setTbl_name(tbl_name);
      args.setPart_vals(part_vals);
      sendBase("get_partition", args);
    }

    public Partition recv_get_partition() throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      get_partition_result result = new get_partition_result();
      receiveBase(result, "get_partition");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_partition failed: unknown result");
    }

    public Partition exchange_partition(java.util.Map<java.lang.String,java.lang.String> partitionSpecs, java.lang.String source_db, java.lang.String source_table_name, java.lang.String dest_db, java.lang.String dest_table_name) throws MetaException, NoSuchObjectException, InvalidObjectException, InvalidInputException, org.apache.thrift.TException
    {
      send_exchange_partition(partitionSpecs, source_db, source_table_name, dest_db, dest_table_name);
      return recv_exchange_partition();
    }

    public void send_exchange_partition(java.util.Map<java.lang.String,java.lang.String> partitionSpecs, java.lang.String source_db, java.lang.String source_table_name, java.lang.String dest_db, java.lang.String dest_table_name) throws org.apache.thrift.TException
    {
      exchange_partition_args args = new exchange_partition_args();
      args.setPartitionSpecs(partitionSpecs);
      args.setSource_db(source_db);
      args.setSource_table_name(source_table_name);
      args.setDest_db(dest_db);
      args.setDest_table_name(dest_table_name);
      sendBase("exchange_partition", args);
    }

    public Partition recv_exchange_partition() throws MetaException, NoSuchObjectException, InvalidObjectException, InvalidInputException, org.apache.thrift.TException
    {
      exchange_partition_result result = new exchange_partition_result();
      receiveBase(result, "exchange_partition");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      if (result.o4 != null) {
        throw result.o4;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "exchange_partition failed: unknown result");
    }

    public java.util.List<Partition> exchange_partitions(java.util.Map<java.lang.String,java.lang.String> partitionSpecs, java.lang.String source_db, java.lang.String source_table_name, java.lang.String dest_db, java.lang.String dest_table_name) throws MetaException, NoSuchObjectException, InvalidObjectException, InvalidInputException, org.apache.thrift.TException
    {
      send_exchange_partitions(partitionSpecs, source_db, source_table_name, dest_db, dest_table_name);
      return recv_exchange_partitions();
    }

    public void send_exchange_partitions(java.util.Map<java.lang.String,java.lang.String> partitionSpecs, java.lang.String source_db, java.lang.String source_table_name, java.lang.String dest_db, java.lang.String dest_table_name) throws org.apache.thrift.TException
    {
      exchange_partitions_args args = new exchange_partitions_args();
      args.setPartitionSpecs(partitionSpecs);
      args.setSource_db(source_db);
      args.setSource_table_name(source_table_name);
      args.setDest_db(dest_db);
      args.setDest_table_name(dest_table_name);
      sendBase("exchange_partitions", args);
    }

    public java.util.List<Partition> recv_exchange_partitions() throws MetaException, NoSuchObjectException, InvalidObjectException, InvalidInputException, org.apache.thrift.TException
    {
      exchange_partitions_result result = new exchange_partitions_result();
      receiveBase(result, "exchange_partitions");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      if (result.o4 != null) {
        throw result.o4;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "exchange_partitions failed: unknown result");
    }

    public Partition get_partition_with_auth(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, java.lang.String user_name, java.util.List<java.lang.String> group_names) throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      send_get_partition_with_auth(db_name, tbl_name, part_vals, user_name, group_names);
      return recv_get_partition_with_auth();
    }

    public void send_get_partition_with_auth(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, java.lang.String user_name, java.util.List<java.lang.String> group_names) throws org.apache.thrift.TException
    {
      get_partition_with_auth_args args = new get_partition_with_auth_args();
      args.setDb_name(db_name);
      args.setTbl_name(tbl_name);
      args.setPart_vals(part_vals);
      args.setUser_name(user_name);
      args.setGroup_names(group_names);
      sendBase("get_partition_with_auth", args);
    }

    public Partition recv_get_partition_with_auth() throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      get_partition_with_auth_result result = new get_partition_with_auth_result();
      receiveBase(result, "get_partition_with_auth");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_partition_with_auth failed: unknown result");
    }

    public Partition get_partition_by_name(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name) throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      send_get_partition_by_name(db_name, tbl_name, part_name);
      return recv_get_partition_by_name();
    }

    public void send_get_partition_by_name(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name) throws org.apache.thrift.TException
    {
      get_partition_by_name_args args = new get_partition_by_name_args();
      args.setDb_name(db_name);
      args.setTbl_name(tbl_name);
      args.setPart_name(part_name);
      sendBase("get_partition_by_name", args);
    }

    public Partition recv_get_partition_by_name() throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      get_partition_by_name_result result = new get_partition_by_name_result();
      receiveBase(result, "get_partition_by_name");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_partition_by_name failed: unknown result");
    }

    public java.util.List<Partition> get_partitions(java.lang.String db_name, java.lang.String tbl_name, short max_parts) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_get_partitions(db_name, tbl_name, max_parts);
      return recv_get_partitions();
    }

    public void send_get_partitions(java.lang.String db_name, java.lang.String tbl_name, short max_parts) throws org.apache.thrift.TException
    {
      get_partitions_args args = new get_partitions_args();
      args.setDb_name(db_name);
      args.setTbl_name(tbl_name);
      args.setMax_parts(max_parts);
      sendBase("get_partitions", args);
    }

    public java.util.List<Partition> recv_get_partitions() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      get_partitions_result result = new get_partitions_result();
      receiveBase(result, "get_partitions");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_partitions failed: unknown result");
    }

    public java.util.List<Partition> get_partitions_with_auth(java.lang.String db_name, java.lang.String tbl_name, short max_parts, java.lang.String user_name, java.util.List<java.lang.String> group_names) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_get_partitions_with_auth(db_name, tbl_name, max_parts, user_name, group_names);
      return recv_get_partitions_with_auth();
    }

    public void send_get_partitions_with_auth(java.lang.String db_name, java.lang.String tbl_name, short max_parts, java.lang.String user_name, java.util.List<java.lang.String> group_names) throws org.apache.thrift.TException
    {
      get_partitions_with_auth_args args = new get_partitions_with_auth_args();
      args.setDb_name(db_name);
      args.setTbl_name(tbl_name);
      args.setMax_parts(max_parts);
      args.setUser_name(user_name);
      args.setGroup_names(group_names);
      sendBase("get_partitions_with_auth", args);
    }

    public java.util.List<Partition> recv_get_partitions_with_auth() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      get_partitions_with_auth_result result = new get_partitions_with_auth_result();
      receiveBase(result, "get_partitions_with_auth");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_partitions_with_auth failed: unknown result");
    }

    public java.util.List<PartitionSpec> get_partitions_pspec(java.lang.String db_name, java.lang.String tbl_name, int max_parts) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_get_partitions_pspec(db_name, tbl_name, max_parts);
      return recv_get_partitions_pspec();
    }

    public void send_get_partitions_pspec(java.lang.String db_name, java.lang.String tbl_name, int max_parts) throws org.apache.thrift.TException
    {
      get_partitions_pspec_args args = new get_partitions_pspec_args();
      args.setDb_name(db_name);
      args.setTbl_name(tbl_name);
      args.setMax_parts(max_parts);
      sendBase("get_partitions_pspec", args);
    }

    public java.util.List<PartitionSpec> recv_get_partitions_pspec() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      get_partitions_pspec_result result = new get_partitions_pspec_result();
      receiveBase(result, "get_partitions_pspec");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_partitions_pspec failed: unknown result");
    }

    public java.util.List<java.lang.String> get_partition_names(java.lang.String db_name, java.lang.String tbl_name, short max_parts) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_get_partition_names(db_name, tbl_name, max_parts);
      return recv_get_partition_names();
    }

    public void send_get_partition_names(java.lang.String db_name, java.lang.String tbl_name, short max_parts) throws org.apache.thrift.TException
    {
      get_partition_names_args args = new get_partition_names_args();
      args.setDb_name(db_name);
      args.setTbl_name(tbl_name);
      args.setMax_parts(max_parts);
      sendBase("get_partition_names", args);
    }

    public java.util.List<java.lang.String> recv_get_partition_names() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      get_partition_names_result result = new get_partition_names_result();
      receiveBase(result, "get_partition_names");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_partition_names failed: unknown result");
    }

    public PartitionValuesResponse get_partition_values(PartitionValuesRequest request) throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      send_get_partition_values(request);
      return recv_get_partition_values();
    }

    public void send_get_partition_values(PartitionValuesRequest request) throws org.apache.thrift.TException
    {
      get_partition_values_args args = new get_partition_values_args();
      args.setRequest(request);
      sendBase("get_partition_values", args);
    }

    public PartitionValuesResponse recv_get_partition_values() throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      get_partition_values_result result = new get_partition_values_result();
      receiveBase(result, "get_partition_values");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_partition_values failed: unknown result");
    }

    public java.util.List<Partition> get_partitions_ps(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, short max_parts) throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      send_get_partitions_ps(db_name, tbl_name, part_vals, max_parts);
      return recv_get_partitions_ps();
    }

    public void send_get_partitions_ps(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, short max_parts) throws org.apache.thrift.TException
    {
      get_partitions_ps_args args = new get_partitions_ps_args();
      args.setDb_name(db_name);
      args.setTbl_name(tbl_name);
      args.setPart_vals(part_vals);
      args.setMax_parts(max_parts);
      sendBase("get_partitions_ps", args);
    }

    public java.util.List<Partition> recv_get_partitions_ps() throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      get_partitions_ps_result result = new get_partitions_ps_result();
      receiveBase(result, "get_partitions_ps");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_partitions_ps failed: unknown result");
    }

    public java.util.List<Partition> get_partitions_ps_with_auth(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, short max_parts, java.lang.String user_name, java.util.List<java.lang.String> group_names) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_get_partitions_ps_with_auth(db_name, tbl_name, part_vals, max_parts, user_name, group_names);
      return recv_get_partitions_ps_with_auth();
    }

    public void send_get_partitions_ps_with_auth(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, short max_parts, java.lang.String user_name, java.util.List<java.lang.String> group_names) throws org.apache.thrift.TException
    {
      get_partitions_ps_with_auth_args args = new get_partitions_ps_with_auth_args();
      args.setDb_name(db_name);
      args.setTbl_name(tbl_name);
      args.setPart_vals(part_vals);
      args.setMax_parts(max_parts);
      args.setUser_name(user_name);
      args.setGroup_names(group_names);
      sendBase("get_partitions_ps_with_auth", args);
    }

    public java.util.List<Partition> recv_get_partitions_ps_with_auth() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      get_partitions_ps_with_auth_result result = new get_partitions_ps_with_auth_result();
      receiveBase(result, "get_partitions_ps_with_auth");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_partitions_ps_with_auth failed: unknown result");
    }

    public java.util.List<java.lang.String> get_partition_names_ps(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, short max_parts) throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      send_get_partition_names_ps(db_name, tbl_name, part_vals, max_parts);
      return recv_get_partition_names_ps();
    }

    public void send_get_partition_names_ps(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, short max_parts) throws org.apache.thrift.TException
    {
      get_partition_names_ps_args args = new get_partition_names_ps_args();
      args.setDb_name(db_name);
      args.setTbl_name(tbl_name);
      args.setPart_vals(part_vals);
      args.setMax_parts(max_parts);
      sendBase("get_partition_names_ps", args);
    }

    public java.util.List<java.lang.String> recv_get_partition_names_ps() throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      get_partition_names_ps_result result = new get_partition_names_ps_result();
      receiveBase(result, "get_partition_names_ps");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_partition_names_ps failed: unknown result");
    }

    public java.util.List<Partition> get_partitions_by_filter(java.lang.String db_name, java.lang.String tbl_name, java.lang.String filter, short max_parts) throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      send_get_partitions_by_filter(db_name, tbl_name, filter, max_parts);
      return recv_get_partitions_by_filter();
    }

    public void send_get_partitions_by_filter(java.lang.String db_name, java.lang.String tbl_name, java.lang.String filter, short max_parts) throws org.apache.thrift.TException
    {
      get_partitions_by_filter_args args = new get_partitions_by_filter_args();
      args.setDb_name(db_name);
      args.setTbl_name(tbl_name);
      args.setFilter(filter);
      args.setMax_parts(max_parts);
      sendBase("get_partitions_by_filter", args);
    }

    public java.util.List<Partition> recv_get_partitions_by_filter() throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      get_partitions_by_filter_result result = new get_partitions_by_filter_result();
      receiveBase(result, "get_partitions_by_filter");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_partitions_by_filter failed: unknown result");
    }

    public java.util.List<PartitionSpec> get_part_specs_by_filter(java.lang.String db_name, java.lang.String tbl_name, java.lang.String filter, int max_parts) throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      send_get_part_specs_by_filter(db_name, tbl_name, filter, max_parts);
      return recv_get_part_specs_by_filter();
    }

    public void send_get_part_specs_by_filter(java.lang.String db_name, java.lang.String tbl_name, java.lang.String filter, int max_parts) throws org.apache.thrift.TException
    {
      get_part_specs_by_filter_args args = new get_part_specs_by_filter_args();
      args.setDb_name(db_name);
      args.setTbl_name(tbl_name);
      args.setFilter(filter);
      args.setMax_parts(max_parts);
      sendBase("get_part_specs_by_filter", args);
    }

    public java.util.List<PartitionSpec> recv_get_part_specs_by_filter() throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      get_part_specs_by_filter_result result = new get_part_specs_by_filter_result();
      receiveBase(result, "get_part_specs_by_filter");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_part_specs_by_filter failed: unknown result");
    }

    public PartitionsByExprResult get_partitions_by_expr(PartitionsByExprRequest req) throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      send_get_partitions_by_expr(req);
      return recv_get_partitions_by_expr();
    }

    public void send_get_partitions_by_expr(PartitionsByExprRequest req) throws org.apache.thrift.TException
    {
      get_partitions_by_expr_args args = new get_partitions_by_expr_args();
      args.setReq(req);
      sendBase("get_partitions_by_expr", args);
    }

    public PartitionsByExprResult recv_get_partitions_by_expr() throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      get_partitions_by_expr_result result = new get_partitions_by_expr_result();
      receiveBase(result, "get_partitions_by_expr");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_partitions_by_expr failed: unknown result");
    }

    public int get_num_partitions_by_filter(java.lang.String db_name, java.lang.String tbl_name, java.lang.String filter) throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      send_get_num_partitions_by_filter(db_name, tbl_name, filter);
      return recv_get_num_partitions_by_filter();
    }

    public void send_get_num_partitions_by_filter(java.lang.String db_name, java.lang.String tbl_name, java.lang.String filter) throws org.apache.thrift.TException
    {
      get_num_partitions_by_filter_args args = new get_num_partitions_by_filter_args();
      args.setDb_name(db_name);
      args.setTbl_name(tbl_name);
      args.setFilter(filter);
      sendBase("get_num_partitions_by_filter", args);
    }

    public int recv_get_num_partitions_by_filter() throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      get_num_partitions_by_filter_result result = new get_num_partitions_by_filter_result();
      receiveBase(result, "get_num_partitions_by_filter");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_num_partitions_by_filter failed: unknown result");
    }

    public java.util.List<Partition> get_partitions_by_names(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> names) throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      send_get_partitions_by_names(db_name, tbl_name, names);
      return recv_get_partitions_by_names();
    }

    public void send_get_partitions_by_names(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> names) throws org.apache.thrift.TException
    {
      get_partitions_by_names_args args = new get_partitions_by_names_args();
      args.setDb_name(db_name);
      args.setTbl_name(tbl_name);
      args.setNames(names);
      sendBase("get_partitions_by_names", args);
    }

    public java.util.List<Partition> recv_get_partitions_by_names() throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      get_partitions_by_names_result result = new get_partitions_by_names_result();
      receiveBase(result, "get_partitions_by_names");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_partitions_by_names failed: unknown result");
    }

    public void alter_partition(java.lang.String db_name, java.lang.String tbl_name, Partition new_part) throws InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      send_alter_partition(db_name, tbl_name, new_part);
      recv_alter_partition();
    }

    public void send_alter_partition(java.lang.String db_name, java.lang.String tbl_name, Partition new_part) throws org.apache.thrift.TException
    {
      alter_partition_args args = new alter_partition_args();
      args.setDb_name(db_name);
      args.setTbl_name(tbl_name);
      args.setNew_part(new_part);
      sendBase("alter_partition", args);
    }

    public void recv_alter_partition() throws InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      alter_partition_result result = new alter_partition_result();
      receiveBase(result, "alter_partition");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      return;
    }

    public void alter_partitions(java.lang.String db_name, java.lang.String tbl_name, java.util.List<Partition> new_parts) throws InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      send_alter_partitions(db_name, tbl_name, new_parts);
      recv_alter_partitions();
    }

    public void send_alter_partitions(java.lang.String db_name, java.lang.String tbl_name, java.util.List<Partition> new_parts) throws org.apache.thrift.TException
    {
      alter_partitions_args args = new alter_partitions_args();
      args.setDb_name(db_name);
      args.setTbl_name(tbl_name);
      args.setNew_parts(new_parts);
      sendBase("alter_partitions", args);
    }

    public void recv_alter_partitions() throws InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      alter_partitions_result result = new alter_partitions_result();
      receiveBase(result, "alter_partitions");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      return;
    }

    public void alter_partitions_with_environment_context(java.lang.String db_name, java.lang.String tbl_name, java.util.List<Partition> new_parts, EnvironmentContext environment_context) throws InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      send_alter_partitions_with_environment_context(db_name, tbl_name, new_parts, environment_context);
      recv_alter_partitions_with_environment_context();
    }

    public void send_alter_partitions_with_environment_context(java.lang.String db_name, java.lang.String tbl_name, java.util.List<Partition> new_parts, EnvironmentContext environment_context) throws org.apache.thrift.TException
    {
      alter_partitions_with_environment_context_args args = new alter_partitions_with_environment_context_args();
      args.setDb_name(db_name);
      args.setTbl_name(tbl_name);
      args.setNew_parts(new_parts);
      args.setEnvironment_context(environment_context);
      sendBase("alter_partitions_with_environment_context", args);
    }

    public void recv_alter_partitions_with_environment_context() throws InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      alter_partitions_with_environment_context_result result = new alter_partitions_with_environment_context_result();
      receiveBase(result, "alter_partitions_with_environment_context");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      return;
    }

    public void alter_partition_with_environment_context(java.lang.String db_name, java.lang.String tbl_name, Partition new_part, EnvironmentContext environment_context) throws InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      send_alter_partition_with_environment_context(db_name, tbl_name, new_part, environment_context);
      recv_alter_partition_with_environment_context();
    }

    public void send_alter_partition_with_environment_context(java.lang.String db_name, java.lang.String tbl_name, Partition new_part, EnvironmentContext environment_context) throws org.apache.thrift.TException
    {
      alter_partition_with_environment_context_args args = new alter_partition_with_environment_context_args();
      args.setDb_name(db_name);
      args.setTbl_name(tbl_name);
      args.setNew_part(new_part);
      args.setEnvironment_context(environment_context);
      sendBase("alter_partition_with_environment_context", args);
    }

    public void recv_alter_partition_with_environment_context() throws InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      alter_partition_with_environment_context_result result = new alter_partition_with_environment_context_result();
      receiveBase(result, "alter_partition_with_environment_context");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      return;
    }

    public void rename_partition(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, Partition new_part) throws InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      send_rename_partition(db_name, tbl_name, part_vals, new_part);
      recv_rename_partition();
    }

    public void send_rename_partition(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, Partition new_part) throws org.apache.thrift.TException
    {
      rename_partition_args args = new rename_partition_args();
      args.setDb_name(db_name);
      args.setTbl_name(tbl_name);
      args.setPart_vals(part_vals);
      args.setNew_part(new_part);
      sendBase("rename_partition", args);
    }

    public void recv_rename_partition() throws InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      rename_partition_result result = new rename_partition_result();
      receiveBase(result, "rename_partition");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      return;
    }

    public boolean partition_name_has_valid_characters(java.util.List<java.lang.String> part_vals, boolean throw_exception) throws MetaException, org.apache.thrift.TException
    {
      send_partition_name_has_valid_characters(part_vals, throw_exception);
      return recv_partition_name_has_valid_characters();
    }

    public void send_partition_name_has_valid_characters(java.util.List<java.lang.String> part_vals, boolean throw_exception) throws org.apache.thrift.TException
    {
      partition_name_has_valid_characters_args args = new partition_name_has_valid_characters_args();
      args.setPart_vals(part_vals);
      args.setThrow_exception(throw_exception);
      sendBase("partition_name_has_valid_characters", args);
    }

    public boolean recv_partition_name_has_valid_characters() throws MetaException, org.apache.thrift.TException
    {
      partition_name_has_valid_characters_result result = new partition_name_has_valid_characters_result();
      receiveBase(result, "partition_name_has_valid_characters");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "partition_name_has_valid_characters failed: unknown result");
    }

    public java.lang.String get_config_value(java.lang.String name, java.lang.String defaultValue) throws ConfigValSecurityException, org.apache.thrift.TException
    {
      send_get_config_value(name, defaultValue);
      return recv_get_config_value();
    }

    public void send_get_config_value(java.lang.String name, java.lang.String defaultValue) throws org.apache.thrift.TException
    {
      get_config_value_args args = new get_config_value_args();
      args.setName(name);
      args.setDefaultValue(defaultValue);
      sendBase("get_config_value", args);
    }

    public java.lang.String recv_get_config_value() throws ConfigValSecurityException, org.apache.thrift.TException
    {
      get_config_value_result result = new get_config_value_result();
      receiveBase(result, "get_config_value");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_config_value failed: unknown result");
    }

    public java.util.List<java.lang.String> partition_name_to_vals(java.lang.String part_name) throws MetaException, org.apache.thrift.TException
    {
      send_partition_name_to_vals(part_name);
      return recv_partition_name_to_vals();
    }

    public void send_partition_name_to_vals(java.lang.String part_name) throws org.apache.thrift.TException
    {
      partition_name_to_vals_args args = new partition_name_to_vals_args();
      args.setPart_name(part_name);
      sendBase("partition_name_to_vals", args);
    }

    public java.util.List<java.lang.String> recv_partition_name_to_vals() throws MetaException, org.apache.thrift.TException
    {
      partition_name_to_vals_result result = new partition_name_to_vals_result();
      receiveBase(result, "partition_name_to_vals");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "partition_name_to_vals failed: unknown result");
    }

    public java.util.Map<java.lang.String,java.lang.String> partition_name_to_spec(java.lang.String part_name) throws MetaException, org.apache.thrift.TException
    {
      send_partition_name_to_spec(part_name);
      return recv_partition_name_to_spec();
    }

    public void send_partition_name_to_spec(java.lang.String part_name) throws org.apache.thrift.TException
    {
      partition_name_to_spec_args args = new partition_name_to_spec_args();
      args.setPart_name(part_name);
      sendBase("partition_name_to_spec", args);
    }

    public java.util.Map<java.lang.String,java.lang.String> recv_partition_name_to_spec() throws MetaException, org.apache.thrift.TException
    {
      partition_name_to_spec_result result = new partition_name_to_spec_result();
      receiveBase(result, "partition_name_to_spec");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "partition_name_to_spec failed: unknown result");
    }

    public void markPartitionForEvent(java.lang.String db_name, java.lang.String tbl_name, java.util.Map<java.lang.String,java.lang.String> part_vals, PartitionEventType eventType) throws MetaException, NoSuchObjectException, UnknownDBException, UnknownTableException, UnknownPartitionException, InvalidPartitionException, org.apache.thrift.TException
    {
      send_markPartitionForEvent(db_name, tbl_name, part_vals, eventType);
      recv_markPartitionForEvent();
    }

    public void send_markPartitionForEvent(java.lang.String db_name, java.lang.String tbl_name, java.util.Map<java.lang.String,java.lang.String> part_vals, PartitionEventType eventType) throws org.apache.thrift.TException
    {
      markPartitionForEvent_args args = new markPartitionForEvent_args();
      args.setDb_name(db_name);
      args.setTbl_name(tbl_name);
      args.setPart_vals(part_vals);
      args.setEventType(eventType);
      sendBase("markPartitionForEvent", args);
    }

    public void recv_markPartitionForEvent() throws MetaException, NoSuchObjectException, UnknownDBException, UnknownTableException, UnknownPartitionException, InvalidPartitionException, org.apache.thrift.TException
    {
      markPartitionForEvent_result result = new markPartitionForEvent_result();
      receiveBase(result, "markPartitionForEvent");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      if (result.o4 != null) {
        throw result.o4;
      }
      if (result.o5 != null) {
        throw result.o5;
      }
      if (result.o6 != null) {
        throw result.o6;
      }
      return;
    }

    public boolean isPartitionMarkedForEvent(java.lang.String db_name, java.lang.String tbl_name, java.util.Map<java.lang.String,java.lang.String> part_vals, PartitionEventType eventType) throws MetaException, NoSuchObjectException, UnknownDBException, UnknownTableException, UnknownPartitionException, InvalidPartitionException, org.apache.thrift.TException
    {
      send_isPartitionMarkedForEvent(db_name, tbl_name, part_vals, eventType);
      return recv_isPartitionMarkedForEvent();
    }

    public void send_isPartitionMarkedForEvent(java.lang.String db_name, java.lang.String tbl_name, java.util.Map<java.lang.String,java.lang.String> part_vals, PartitionEventType eventType) throws org.apache.thrift.TException
    {
      isPartitionMarkedForEvent_args args = new isPartitionMarkedForEvent_args();
      args.setDb_name(db_name);
      args.setTbl_name(tbl_name);
      args.setPart_vals(part_vals);
      args.setEventType(eventType);
      sendBase("isPartitionMarkedForEvent", args);
    }

    public boolean recv_isPartitionMarkedForEvent() throws MetaException, NoSuchObjectException, UnknownDBException, UnknownTableException, UnknownPartitionException, InvalidPartitionException, org.apache.thrift.TException
    {
      isPartitionMarkedForEvent_result result = new isPartitionMarkedForEvent_result();
      receiveBase(result, "isPartitionMarkedForEvent");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      if (result.o4 != null) {
        throw result.o4;
      }
      if (result.o5 != null) {
        throw result.o5;
      }
      if (result.o6 != null) {
        throw result.o6;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "isPartitionMarkedForEvent failed: unknown result");
    }

    public PrimaryKeysResponse get_primary_keys(PrimaryKeysRequest request) throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      send_get_primary_keys(request);
      return recv_get_primary_keys();
    }

    public void send_get_primary_keys(PrimaryKeysRequest request) throws org.apache.thrift.TException
    {
      get_primary_keys_args args = new get_primary_keys_args();
      args.setRequest(request);
      sendBase("get_primary_keys", args);
    }

    public PrimaryKeysResponse recv_get_primary_keys() throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      get_primary_keys_result result = new get_primary_keys_result();
      receiveBase(result, "get_primary_keys");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_primary_keys failed: unknown result");
    }

    public ForeignKeysResponse get_foreign_keys(ForeignKeysRequest request) throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      send_get_foreign_keys(request);
      return recv_get_foreign_keys();
    }

    public void send_get_foreign_keys(ForeignKeysRequest request) throws org.apache.thrift.TException
    {
      get_foreign_keys_args args = new get_foreign_keys_args();
      args.setRequest(request);
      sendBase("get_foreign_keys", args);
    }

    public ForeignKeysResponse recv_get_foreign_keys() throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      get_foreign_keys_result result = new get_foreign_keys_result();
      receiveBase(result, "get_foreign_keys");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_foreign_keys failed: unknown result");
    }

    public UniqueConstraintsResponse get_unique_constraints(UniqueConstraintsRequest request) throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      send_get_unique_constraints(request);
      return recv_get_unique_constraints();
    }

    public void send_get_unique_constraints(UniqueConstraintsRequest request) throws org.apache.thrift.TException
    {
      get_unique_constraints_args args = new get_unique_constraints_args();
      args.setRequest(request);
      sendBase("get_unique_constraints", args);
    }

    public UniqueConstraintsResponse recv_get_unique_constraints() throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      get_unique_constraints_result result = new get_unique_constraints_result();
      receiveBase(result, "get_unique_constraints");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_unique_constraints failed: unknown result");
    }

    public NotNullConstraintsResponse get_not_null_constraints(NotNullConstraintsRequest request) throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      send_get_not_null_constraints(request);
      return recv_get_not_null_constraints();
    }

    public void send_get_not_null_constraints(NotNullConstraintsRequest request) throws org.apache.thrift.TException
    {
      get_not_null_constraints_args args = new get_not_null_constraints_args();
      args.setRequest(request);
      sendBase("get_not_null_constraints", args);
    }

    public NotNullConstraintsResponse recv_get_not_null_constraints() throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      get_not_null_constraints_result result = new get_not_null_constraints_result();
      receiveBase(result, "get_not_null_constraints");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_not_null_constraints failed: unknown result");
    }

    public DefaultConstraintsResponse get_default_constraints(DefaultConstraintsRequest request) throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      send_get_default_constraints(request);
      return recv_get_default_constraints();
    }

    public void send_get_default_constraints(DefaultConstraintsRequest request) throws org.apache.thrift.TException
    {
      get_default_constraints_args args = new get_default_constraints_args();
      args.setRequest(request);
      sendBase("get_default_constraints", args);
    }

    public DefaultConstraintsResponse recv_get_default_constraints() throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      get_default_constraints_result result = new get_default_constraints_result();
      receiveBase(result, "get_default_constraints");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_default_constraints failed: unknown result");
    }

    public CheckConstraintsResponse get_check_constraints(CheckConstraintsRequest request) throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      send_get_check_constraints(request);
      return recv_get_check_constraints();
    }

    public void send_get_check_constraints(CheckConstraintsRequest request) throws org.apache.thrift.TException
    {
      get_check_constraints_args args = new get_check_constraints_args();
      args.setRequest(request);
      sendBase("get_check_constraints", args);
    }

    public CheckConstraintsResponse recv_get_check_constraints() throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      get_check_constraints_result result = new get_check_constraints_result();
      receiveBase(result, "get_check_constraints");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_check_constraints failed: unknown result");
    }

    public boolean update_table_column_statistics(ColumnStatistics stats_obj) throws NoSuchObjectException, InvalidObjectException, MetaException, InvalidInputException, org.apache.thrift.TException
    {
      send_update_table_column_statistics(stats_obj);
      return recv_update_table_column_statistics();
    }

    public void send_update_table_column_statistics(ColumnStatistics stats_obj) throws org.apache.thrift.TException
    {
      update_table_column_statistics_args args = new update_table_column_statistics_args();
      args.setStats_obj(stats_obj);
      sendBase("update_table_column_statistics", args);
    }

    public boolean recv_update_table_column_statistics() throws NoSuchObjectException, InvalidObjectException, MetaException, InvalidInputException, org.apache.thrift.TException
    {
      update_table_column_statistics_result result = new update_table_column_statistics_result();
      receiveBase(result, "update_table_column_statistics");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      if (result.o4 != null) {
        throw result.o4;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "update_table_column_statistics failed: unknown result");
    }

    public boolean update_partition_column_statistics(ColumnStatistics stats_obj) throws NoSuchObjectException, InvalidObjectException, MetaException, InvalidInputException, org.apache.thrift.TException
    {
      send_update_partition_column_statistics(stats_obj);
      return recv_update_partition_column_statistics();
    }

    public void send_update_partition_column_statistics(ColumnStatistics stats_obj) throws org.apache.thrift.TException
    {
      update_partition_column_statistics_args args = new update_partition_column_statistics_args();
      args.setStats_obj(stats_obj);
      sendBase("update_partition_column_statistics", args);
    }

    public boolean recv_update_partition_column_statistics() throws NoSuchObjectException, InvalidObjectException, MetaException, InvalidInputException, org.apache.thrift.TException
    {
      update_partition_column_statistics_result result = new update_partition_column_statistics_result();
      receiveBase(result, "update_partition_column_statistics");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      if (result.o4 != null) {
        throw result.o4;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "update_partition_column_statistics failed: unknown result");
    }

    public ColumnStatistics get_table_column_statistics(java.lang.String db_name, java.lang.String tbl_name, java.lang.String col_name) throws NoSuchObjectException, MetaException, InvalidInputException, InvalidObjectException, org.apache.thrift.TException
    {
      send_get_table_column_statistics(db_name, tbl_name, col_name);
      return recv_get_table_column_statistics();
    }

    public void send_get_table_column_statistics(java.lang.String db_name, java.lang.String tbl_name, java.lang.String col_name) throws org.apache.thrift.TException
    {
      get_table_column_statistics_args args = new get_table_column_statistics_args();
      args.setDb_name(db_name);
      args.setTbl_name(tbl_name);
      args.setCol_name(col_name);
      sendBase("get_table_column_statistics", args);
    }

    public ColumnStatistics recv_get_table_column_statistics() throws NoSuchObjectException, MetaException, InvalidInputException, InvalidObjectException, org.apache.thrift.TException
    {
      get_table_column_statistics_result result = new get_table_column_statistics_result();
      receiveBase(result, "get_table_column_statistics");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      if (result.o4 != null) {
        throw result.o4;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_table_column_statistics failed: unknown result");
    }

    public ColumnStatistics get_partition_column_statistics(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, java.lang.String col_name) throws NoSuchObjectException, MetaException, InvalidInputException, InvalidObjectException, org.apache.thrift.TException
    {
      send_get_partition_column_statistics(db_name, tbl_name, part_name, col_name);
      return recv_get_partition_column_statistics();
    }

    public void send_get_partition_column_statistics(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, java.lang.String col_name) throws org.apache.thrift.TException
    {
      get_partition_column_statistics_args args = new get_partition_column_statistics_args();
      args.setDb_name(db_name);
      args.setTbl_name(tbl_name);
      args.setPart_name(part_name);
      args.setCol_name(col_name);
      sendBase("get_partition_column_statistics", args);
    }

    public ColumnStatistics recv_get_partition_column_statistics() throws NoSuchObjectException, MetaException, InvalidInputException, InvalidObjectException, org.apache.thrift.TException
    {
      get_partition_column_statistics_result result = new get_partition_column_statistics_result();
      receiveBase(result, "get_partition_column_statistics");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      if (result.o4 != null) {
        throw result.o4;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_partition_column_statistics failed: unknown result");
    }

    public TableStatsResult get_table_statistics_req(TableStatsRequest request) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_get_table_statistics_req(request);
      return recv_get_table_statistics_req();
    }

    public void send_get_table_statistics_req(TableStatsRequest request) throws org.apache.thrift.TException
    {
      get_table_statistics_req_args args = new get_table_statistics_req_args();
      args.setRequest(request);
      sendBase("get_table_statistics_req", args);
    }

    public TableStatsResult recv_get_table_statistics_req() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      get_table_statistics_req_result result = new get_table_statistics_req_result();
      receiveBase(result, "get_table_statistics_req");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_table_statistics_req failed: unknown result");
    }

    public PartitionsStatsResult get_partitions_statistics_req(PartitionsStatsRequest request) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_get_partitions_statistics_req(request);
      return recv_get_partitions_statistics_req();
    }

    public void send_get_partitions_statistics_req(PartitionsStatsRequest request) throws org.apache.thrift.TException
    {
      get_partitions_statistics_req_args args = new get_partitions_statistics_req_args();
      args.setRequest(request);
      sendBase("get_partitions_statistics_req", args);
    }

    public PartitionsStatsResult recv_get_partitions_statistics_req() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      get_partitions_statistics_req_result result = new get_partitions_statistics_req_result();
      receiveBase(result, "get_partitions_statistics_req");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_partitions_statistics_req failed: unknown result");
    }

    public AggrStats get_aggr_stats_for(PartitionsStatsRequest request) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_get_aggr_stats_for(request);
      return recv_get_aggr_stats_for();
    }

    public void send_get_aggr_stats_for(PartitionsStatsRequest request) throws org.apache.thrift.TException
    {
      get_aggr_stats_for_args args = new get_aggr_stats_for_args();
      args.setRequest(request);
      sendBase("get_aggr_stats_for", args);
    }

    public AggrStats recv_get_aggr_stats_for() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      get_aggr_stats_for_result result = new get_aggr_stats_for_result();
      receiveBase(result, "get_aggr_stats_for");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_aggr_stats_for failed: unknown result");
    }

    public boolean set_aggr_stats_for(SetPartitionsStatsRequest request) throws NoSuchObjectException, InvalidObjectException, MetaException, InvalidInputException, org.apache.thrift.TException
    {
      send_set_aggr_stats_for(request);
      return recv_set_aggr_stats_for();
    }

    public void send_set_aggr_stats_for(SetPartitionsStatsRequest request) throws org.apache.thrift.TException
    {
      set_aggr_stats_for_args args = new set_aggr_stats_for_args();
      args.setRequest(request);
      sendBase("set_aggr_stats_for", args);
    }

    public boolean recv_set_aggr_stats_for() throws NoSuchObjectException, InvalidObjectException, MetaException, InvalidInputException, org.apache.thrift.TException
    {
      set_aggr_stats_for_result result = new set_aggr_stats_for_result();
      receiveBase(result, "set_aggr_stats_for");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      if (result.o4 != null) {
        throw result.o4;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "set_aggr_stats_for failed: unknown result");
    }

    public boolean delete_partition_column_statistics(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, java.lang.String col_name) throws NoSuchObjectException, MetaException, InvalidObjectException, InvalidInputException, org.apache.thrift.TException
    {
      send_delete_partition_column_statistics(db_name, tbl_name, part_name, col_name);
      return recv_delete_partition_column_statistics();
    }

    public void send_delete_partition_column_statistics(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, java.lang.String col_name) throws org.apache.thrift.TException
    {
      delete_partition_column_statistics_args args = new delete_partition_column_statistics_args();
      args.setDb_name(db_name);
      args.setTbl_name(tbl_name);
      args.setPart_name(part_name);
      args.setCol_name(col_name);
      sendBase("delete_partition_column_statistics", args);
    }

    public boolean recv_delete_partition_column_statistics() throws NoSuchObjectException, MetaException, InvalidObjectException, InvalidInputException, org.apache.thrift.TException
    {
      delete_partition_column_statistics_result result = new delete_partition_column_statistics_result();
      receiveBase(result, "delete_partition_column_statistics");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      if (result.o4 != null) {
        throw result.o4;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "delete_partition_column_statistics failed: unknown result");
    }

    public boolean delete_table_column_statistics(java.lang.String db_name, java.lang.String tbl_name, java.lang.String col_name) throws NoSuchObjectException, MetaException, InvalidObjectException, InvalidInputException, org.apache.thrift.TException
    {
      send_delete_table_column_statistics(db_name, tbl_name, col_name);
      return recv_delete_table_column_statistics();
    }

    public void send_delete_table_column_statistics(java.lang.String db_name, java.lang.String tbl_name, java.lang.String col_name) throws org.apache.thrift.TException
    {
      delete_table_column_statistics_args args = new delete_table_column_statistics_args();
      args.setDb_name(db_name);
      args.setTbl_name(tbl_name);
      args.setCol_name(col_name);
      sendBase("delete_table_column_statistics", args);
    }

    public boolean recv_delete_table_column_statistics() throws NoSuchObjectException, MetaException, InvalidObjectException, InvalidInputException, org.apache.thrift.TException
    {
      delete_table_column_statistics_result result = new delete_table_column_statistics_result();
      receiveBase(result, "delete_table_column_statistics");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      if (result.o4 != null) {
        throw result.o4;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "delete_table_column_statistics failed: unknown result");
    }

    public void create_function(Function func) throws AlreadyExistsException, InvalidObjectException, MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      send_create_function(func);
      recv_create_function();
    }

    public void send_create_function(Function func) throws org.apache.thrift.TException
    {
      create_function_args args = new create_function_args();
      args.setFunc(func);
      sendBase("create_function", args);
    }

    public void recv_create_function() throws AlreadyExistsException, InvalidObjectException, MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      create_function_result result = new create_function_result();
      receiveBase(result, "create_function");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      if (result.o4 != null) {
        throw result.o4;
      }
      return;
    }

    public void drop_function(java.lang.String dbName, java.lang.String funcName) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_drop_function(dbName, funcName);
      recv_drop_function();
    }

    public void send_drop_function(java.lang.String dbName, java.lang.String funcName) throws org.apache.thrift.TException
    {
      drop_function_args args = new drop_function_args();
      args.setDbName(dbName);
      args.setFuncName(funcName);
      sendBase("drop_function", args);
    }

    public void recv_drop_function() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      drop_function_result result = new drop_function_result();
      receiveBase(result, "drop_function");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      return;
    }

    public void alter_function(java.lang.String dbName, java.lang.String funcName, Function newFunc) throws InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      send_alter_function(dbName, funcName, newFunc);
      recv_alter_function();
    }

    public void send_alter_function(java.lang.String dbName, java.lang.String funcName, Function newFunc) throws org.apache.thrift.TException
    {
      alter_function_args args = new alter_function_args();
      args.setDbName(dbName);
      args.setFuncName(funcName);
      args.setNewFunc(newFunc);
      sendBase("alter_function", args);
    }

    public void recv_alter_function() throws InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      alter_function_result result = new alter_function_result();
      receiveBase(result, "alter_function");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      return;
    }

    public java.util.List<java.lang.String> get_functions(java.lang.String dbName, java.lang.String pattern) throws MetaException, org.apache.thrift.TException
    {
      send_get_functions(dbName, pattern);
      return recv_get_functions();
    }

    public void send_get_functions(java.lang.String dbName, java.lang.String pattern) throws org.apache.thrift.TException
    {
      get_functions_args args = new get_functions_args();
      args.setDbName(dbName);
      args.setPattern(pattern);
      sendBase("get_functions", args);
    }

    public java.util.List<java.lang.String> recv_get_functions() throws MetaException, org.apache.thrift.TException
    {
      get_functions_result result = new get_functions_result();
      receiveBase(result, "get_functions");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_functions failed: unknown result");
    }

    public Function get_function(java.lang.String dbName, java.lang.String funcName) throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      send_get_function(dbName, funcName);
      return recv_get_function();
    }

    public void send_get_function(java.lang.String dbName, java.lang.String funcName) throws org.apache.thrift.TException
    {
      get_function_args args = new get_function_args();
      args.setDbName(dbName);
      args.setFuncName(funcName);
      sendBase("get_function", args);
    }

    public Function recv_get_function() throws MetaException, NoSuchObjectException, org.apache.thrift.TException
    {
      get_function_result result = new get_function_result();
      receiveBase(result, "get_function");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_function failed: unknown result");
    }

    public GetAllFunctionsResponse get_all_functions() throws MetaException, org.apache.thrift.TException
    {
      send_get_all_functions();
      return recv_get_all_functions();
    }

    public void send_get_all_functions() throws org.apache.thrift.TException
    {
      get_all_functions_args args = new get_all_functions_args();
      sendBase("get_all_functions", args);
    }

    public GetAllFunctionsResponse recv_get_all_functions() throws MetaException, org.apache.thrift.TException
    {
      get_all_functions_result result = new get_all_functions_result();
      receiveBase(result, "get_all_functions");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_all_functions failed: unknown result");
    }

    public boolean create_role(Role role) throws MetaException, org.apache.thrift.TException
    {
      send_create_role(role);
      return recv_create_role();
    }

    public void send_create_role(Role role) throws org.apache.thrift.TException
    {
      create_role_args args = new create_role_args();
      args.setRole(role);
      sendBase("create_role", args);
    }

    public boolean recv_create_role() throws MetaException, org.apache.thrift.TException
    {
      create_role_result result = new create_role_result();
      receiveBase(result, "create_role");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "create_role failed: unknown result");
    }

    public boolean drop_role(java.lang.String role_name) throws MetaException, org.apache.thrift.TException
    {
      send_drop_role(role_name);
      return recv_drop_role();
    }

    public void send_drop_role(java.lang.String role_name) throws org.apache.thrift.TException
    {
      drop_role_args args = new drop_role_args();
      args.setRole_name(role_name);
      sendBase("drop_role", args);
    }

    public boolean recv_drop_role() throws MetaException, org.apache.thrift.TException
    {
      drop_role_result result = new drop_role_result();
      receiveBase(result, "drop_role");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "drop_role failed: unknown result");
    }

    public java.util.List<java.lang.String> get_role_names() throws MetaException, org.apache.thrift.TException
    {
      send_get_role_names();
      return recv_get_role_names();
    }

    public void send_get_role_names() throws org.apache.thrift.TException
    {
      get_role_names_args args = new get_role_names_args();
      sendBase("get_role_names", args);
    }

    public java.util.List<java.lang.String> recv_get_role_names() throws MetaException, org.apache.thrift.TException
    {
      get_role_names_result result = new get_role_names_result();
      receiveBase(result, "get_role_names");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_role_names failed: unknown result");
    }

    public boolean grant_role(java.lang.String role_name, java.lang.String principal_name, PrincipalType principal_type, java.lang.String grantor, PrincipalType grantorType, boolean grant_option) throws MetaException, org.apache.thrift.TException
    {
      send_grant_role(role_name, principal_name, principal_type, grantor, grantorType, grant_option);
      return recv_grant_role();
    }

    public void send_grant_role(java.lang.String role_name, java.lang.String principal_name, PrincipalType principal_type, java.lang.String grantor, PrincipalType grantorType, boolean grant_option) throws org.apache.thrift.TException
    {
      grant_role_args args = new grant_role_args();
      args.setRole_name(role_name);
      args.setPrincipal_name(principal_name);
      args.setPrincipal_type(principal_type);
      args.setGrantor(grantor);
      args.setGrantorType(grantorType);
      args.setGrant_option(grant_option);
      sendBase("grant_role", args);
    }

    public boolean recv_grant_role() throws MetaException, org.apache.thrift.TException
    {
      grant_role_result result = new grant_role_result();
      receiveBase(result, "grant_role");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "grant_role failed: unknown result");
    }

    public boolean revoke_role(java.lang.String role_name, java.lang.String principal_name, PrincipalType principal_type) throws MetaException, org.apache.thrift.TException
    {
      send_revoke_role(role_name, principal_name, principal_type);
      return recv_revoke_role();
    }

    public void send_revoke_role(java.lang.String role_name, java.lang.String principal_name, PrincipalType principal_type) throws org.apache.thrift.TException
    {
      revoke_role_args args = new revoke_role_args();
      args.setRole_name(role_name);
      args.setPrincipal_name(principal_name);
      args.setPrincipal_type(principal_type);
      sendBase("revoke_role", args);
    }

    public boolean recv_revoke_role() throws MetaException, org.apache.thrift.TException
    {
      revoke_role_result result = new revoke_role_result();
      receiveBase(result, "revoke_role");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "revoke_role failed: unknown result");
    }

    public java.util.List<Role> list_roles(java.lang.String principal_name, PrincipalType principal_type) throws MetaException, org.apache.thrift.TException
    {
      send_list_roles(principal_name, principal_type);
      return recv_list_roles();
    }

    public void send_list_roles(java.lang.String principal_name, PrincipalType principal_type) throws org.apache.thrift.TException
    {
      list_roles_args args = new list_roles_args();
      args.setPrincipal_name(principal_name);
      args.setPrincipal_type(principal_type);
      sendBase("list_roles", args);
    }

    public java.util.List<Role> recv_list_roles() throws MetaException, org.apache.thrift.TException
    {
      list_roles_result result = new list_roles_result();
      receiveBase(result, "list_roles");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "list_roles failed: unknown result");
    }

    public GrantRevokeRoleResponse grant_revoke_role(GrantRevokeRoleRequest request) throws MetaException, org.apache.thrift.TException
    {
      send_grant_revoke_role(request);
      return recv_grant_revoke_role();
    }

    public void send_grant_revoke_role(GrantRevokeRoleRequest request) throws org.apache.thrift.TException
    {
      grant_revoke_role_args args = new grant_revoke_role_args();
      args.setRequest(request);
      sendBase("grant_revoke_role", args);
    }

    public GrantRevokeRoleResponse recv_grant_revoke_role() throws MetaException, org.apache.thrift.TException
    {
      grant_revoke_role_result result = new grant_revoke_role_result();
      receiveBase(result, "grant_revoke_role");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "grant_revoke_role failed: unknown result");
    }

    public GetPrincipalsInRoleResponse get_principals_in_role(GetPrincipalsInRoleRequest request) throws MetaException, org.apache.thrift.TException
    {
      send_get_principals_in_role(request);
      return recv_get_principals_in_role();
    }

    public void send_get_principals_in_role(GetPrincipalsInRoleRequest request) throws org.apache.thrift.TException
    {
      get_principals_in_role_args args = new get_principals_in_role_args();
      args.setRequest(request);
      sendBase("get_principals_in_role", args);
    }

    public GetPrincipalsInRoleResponse recv_get_principals_in_role() throws MetaException, org.apache.thrift.TException
    {
      get_principals_in_role_result result = new get_principals_in_role_result();
      receiveBase(result, "get_principals_in_role");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_principals_in_role failed: unknown result");
    }

    public GetRoleGrantsForPrincipalResponse get_role_grants_for_principal(GetRoleGrantsForPrincipalRequest request) throws MetaException, org.apache.thrift.TException
    {
      send_get_role_grants_for_principal(request);
      return recv_get_role_grants_for_principal();
    }

    public void send_get_role_grants_for_principal(GetRoleGrantsForPrincipalRequest request) throws org.apache.thrift.TException
    {
      get_role_grants_for_principal_args args = new get_role_grants_for_principal_args();
      args.setRequest(request);
      sendBase("get_role_grants_for_principal", args);
    }

    public GetRoleGrantsForPrincipalResponse recv_get_role_grants_for_principal() throws MetaException, org.apache.thrift.TException
    {
      get_role_grants_for_principal_result result = new get_role_grants_for_principal_result();
      receiveBase(result, "get_role_grants_for_principal");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_role_grants_for_principal failed: unknown result");
    }

    public PrincipalPrivilegeSet get_privilege_set(HiveObjectRef hiveObject, java.lang.String user_name, java.util.List<java.lang.String> group_names) throws MetaException, org.apache.thrift.TException
    {
      send_get_privilege_set(hiveObject, user_name, group_names);
      return recv_get_privilege_set();
    }

    public void send_get_privilege_set(HiveObjectRef hiveObject, java.lang.String user_name, java.util.List<java.lang.String> group_names) throws org.apache.thrift.TException
    {
      get_privilege_set_args args = new get_privilege_set_args();
      args.setHiveObject(hiveObject);
      args.setUser_name(user_name);
      args.setGroup_names(group_names);
      sendBase("get_privilege_set", args);
    }

    public PrincipalPrivilegeSet recv_get_privilege_set() throws MetaException, org.apache.thrift.TException
    {
      get_privilege_set_result result = new get_privilege_set_result();
      receiveBase(result, "get_privilege_set");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_privilege_set failed: unknown result");
    }

    public java.util.List<HiveObjectPrivilege> list_privileges(java.lang.String principal_name, PrincipalType principal_type, HiveObjectRef hiveObject) throws MetaException, org.apache.thrift.TException
    {
      send_list_privileges(principal_name, principal_type, hiveObject);
      return recv_list_privileges();
    }

    public void send_list_privileges(java.lang.String principal_name, PrincipalType principal_type, HiveObjectRef hiveObject) throws org.apache.thrift.TException
    {
      list_privileges_args args = new list_privileges_args();
      args.setPrincipal_name(principal_name);
      args.setPrincipal_type(principal_type);
      args.setHiveObject(hiveObject);
      sendBase("list_privileges", args);
    }

    public java.util.List<HiveObjectPrivilege> recv_list_privileges() throws MetaException, org.apache.thrift.TException
    {
      list_privileges_result result = new list_privileges_result();
      receiveBase(result, "list_privileges");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "list_privileges failed: unknown result");
    }

    public boolean grant_privileges(PrivilegeBag privileges) throws MetaException, org.apache.thrift.TException
    {
      send_grant_privileges(privileges);
      return recv_grant_privileges();
    }

    public void send_grant_privileges(PrivilegeBag privileges) throws org.apache.thrift.TException
    {
      grant_privileges_args args = new grant_privileges_args();
      args.setPrivileges(privileges);
      sendBase("grant_privileges", args);
    }

    public boolean recv_grant_privileges() throws MetaException, org.apache.thrift.TException
    {
      grant_privileges_result result = new grant_privileges_result();
      receiveBase(result, "grant_privileges");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "grant_privileges failed: unknown result");
    }

    public boolean revoke_privileges(PrivilegeBag privileges) throws MetaException, org.apache.thrift.TException
    {
      send_revoke_privileges(privileges);
      return recv_revoke_privileges();
    }

    public void send_revoke_privileges(PrivilegeBag privileges) throws org.apache.thrift.TException
    {
      revoke_privileges_args args = new revoke_privileges_args();
      args.setPrivileges(privileges);
      sendBase("revoke_privileges", args);
    }

    public boolean recv_revoke_privileges() throws MetaException, org.apache.thrift.TException
    {
      revoke_privileges_result result = new revoke_privileges_result();
      receiveBase(result, "revoke_privileges");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "revoke_privileges failed: unknown result");
    }

    public GrantRevokePrivilegeResponse grant_revoke_privileges(GrantRevokePrivilegeRequest request) throws MetaException, org.apache.thrift.TException
    {
      send_grant_revoke_privileges(request);
      return recv_grant_revoke_privileges();
    }

    public void send_grant_revoke_privileges(GrantRevokePrivilegeRequest request) throws org.apache.thrift.TException
    {
      grant_revoke_privileges_args args = new grant_revoke_privileges_args();
      args.setRequest(request);
      sendBase("grant_revoke_privileges", args);
    }

    public GrantRevokePrivilegeResponse recv_grant_revoke_privileges() throws MetaException, org.apache.thrift.TException
    {
      grant_revoke_privileges_result result = new grant_revoke_privileges_result();
      receiveBase(result, "grant_revoke_privileges");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "grant_revoke_privileges failed: unknown result");
    }

    public GrantRevokePrivilegeResponse refresh_privileges(HiveObjectRef objToRefresh, java.lang.String authorizer, GrantRevokePrivilegeRequest grantRequest) throws MetaException, org.apache.thrift.TException
    {
      send_refresh_privileges(objToRefresh, authorizer, grantRequest);
      return recv_refresh_privileges();
    }

    public void send_refresh_privileges(HiveObjectRef objToRefresh, java.lang.String authorizer, GrantRevokePrivilegeRequest grantRequest) throws org.apache.thrift.TException
    {
      refresh_privileges_args args = new refresh_privileges_args();
      args.setObjToRefresh(objToRefresh);
      args.setAuthorizer(authorizer);
      args.setGrantRequest(grantRequest);
      sendBase("refresh_privileges", args);
    }

    public GrantRevokePrivilegeResponse recv_refresh_privileges() throws MetaException, org.apache.thrift.TException
    {
      refresh_privileges_result result = new refresh_privileges_result();
      receiveBase(result, "refresh_privileges");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "refresh_privileges failed: unknown result");
    }

    public java.util.List<java.lang.String> set_ugi(java.lang.String user_name, java.util.List<java.lang.String> group_names) throws MetaException, org.apache.thrift.TException
    {
      send_set_ugi(user_name, group_names);
      return recv_set_ugi();
    }

    public void send_set_ugi(java.lang.String user_name, java.util.List<java.lang.String> group_names) throws org.apache.thrift.TException
    {
      set_ugi_args args = new set_ugi_args();
      args.setUser_name(user_name);
      args.setGroup_names(group_names);
      sendBase("set_ugi", args);
    }

    public java.util.List<java.lang.String> recv_set_ugi() throws MetaException, org.apache.thrift.TException
    {
      set_ugi_result result = new set_ugi_result();
      receiveBase(result, "set_ugi");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "set_ugi failed: unknown result");
    }

    public java.lang.String get_delegation_token(java.lang.String token_owner, java.lang.String renewer_kerberos_principal_name) throws MetaException, org.apache.thrift.TException
    {
      send_get_delegation_token(token_owner, renewer_kerberos_principal_name);
      return recv_get_delegation_token();
    }

    public void send_get_delegation_token(java.lang.String token_owner, java.lang.String renewer_kerberos_principal_name) throws org.apache.thrift.TException
    {
      get_delegation_token_args args = new get_delegation_token_args();
      args.setToken_owner(token_owner);
      args.setRenewer_kerberos_principal_name(renewer_kerberos_principal_name);
      sendBase("get_delegation_token", args);
    }

    public java.lang.String recv_get_delegation_token() throws MetaException, org.apache.thrift.TException
    {
      get_delegation_token_result result = new get_delegation_token_result();
      receiveBase(result, "get_delegation_token");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_delegation_token failed: unknown result");
    }

    public long renew_delegation_token(java.lang.String token_str_form) throws MetaException, org.apache.thrift.TException
    {
      send_renew_delegation_token(token_str_form);
      return recv_renew_delegation_token();
    }

    public void send_renew_delegation_token(java.lang.String token_str_form) throws org.apache.thrift.TException
    {
      renew_delegation_token_args args = new renew_delegation_token_args();
      args.setToken_str_form(token_str_form);
      sendBase("renew_delegation_token", args);
    }

    public long recv_renew_delegation_token() throws MetaException, org.apache.thrift.TException
    {
      renew_delegation_token_result result = new renew_delegation_token_result();
      receiveBase(result, "renew_delegation_token");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "renew_delegation_token failed: unknown result");
    }

    public void cancel_delegation_token(java.lang.String token_str_form) throws MetaException, org.apache.thrift.TException
    {
      send_cancel_delegation_token(token_str_form);
      recv_cancel_delegation_token();
    }

    public void send_cancel_delegation_token(java.lang.String token_str_form) throws org.apache.thrift.TException
    {
      cancel_delegation_token_args args = new cancel_delegation_token_args();
      args.setToken_str_form(token_str_form);
      sendBase("cancel_delegation_token", args);
    }

    public void recv_cancel_delegation_token() throws MetaException, org.apache.thrift.TException
    {
      cancel_delegation_token_result result = new cancel_delegation_token_result();
      receiveBase(result, "cancel_delegation_token");
      if (result.o1 != null) {
        throw result.o1;
      }
      return;
    }

    public boolean add_token(java.lang.String token_identifier, java.lang.String delegation_token) throws org.apache.thrift.TException
    {
      send_add_token(token_identifier, delegation_token);
      return recv_add_token();
    }

    public void send_add_token(java.lang.String token_identifier, java.lang.String delegation_token) throws org.apache.thrift.TException
    {
      add_token_args args = new add_token_args();
      args.setToken_identifier(token_identifier);
      args.setDelegation_token(delegation_token);
      sendBase("add_token", args);
    }

    public boolean recv_add_token() throws org.apache.thrift.TException
    {
      add_token_result result = new add_token_result();
      receiveBase(result, "add_token");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "add_token failed: unknown result");
    }

    public boolean remove_token(java.lang.String token_identifier) throws org.apache.thrift.TException
    {
      send_remove_token(token_identifier);
      return recv_remove_token();
    }

    public void send_remove_token(java.lang.String token_identifier) throws org.apache.thrift.TException
    {
      remove_token_args args = new remove_token_args();
      args.setToken_identifier(token_identifier);
      sendBase("remove_token", args);
    }

    public boolean recv_remove_token() throws org.apache.thrift.TException
    {
      remove_token_result result = new remove_token_result();
      receiveBase(result, "remove_token");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "remove_token failed: unknown result");
    }

    public java.lang.String get_token(java.lang.String token_identifier) throws org.apache.thrift.TException
    {
      send_get_token(token_identifier);
      return recv_get_token();
    }

    public void send_get_token(java.lang.String token_identifier) throws org.apache.thrift.TException
    {
      get_token_args args = new get_token_args();
      args.setToken_identifier(token_identifier);
      sendBase("get_token", args);
    }

    public java.lang.String recv_get_token() throws org.apache.thrift.TException
    {
      get_token_result result = new get_token_result();
      receiveBase(result, "get_token");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_token failed: unknown result");
    }

    public java.util.List<java.lang.String> get_all_token_identifiers() throws org.apache.thrift.TException
    {
      send_get_all_token_identifiers();
      return recv_get_all_token_identifiers();
    }

    public void send_get_all_token_identifiers() throws org.apache.thrift.TException
    {
      get_all_token_identifiers_args args = new get_all_token_identifiers_args();
      sendBase("get_all_token_identifiers", args);
    }

    public java.util.List<java.lang.String> recv_get_all_token_identifiers() throws org.apache.thrift.TException
    {
      get_all_token_identifiers_result result = new get_all_token_identifiers_result();
      receiveBase(result, "get_all_token_identifiers");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_all_token_identifiers failed: unknown result");
    }

    public int add_master_key(java.lang.String key) throws MetaException, org.apache.thrift.TException
    {
      send_add_master_key(key);
      return recv_add_master_key();
    }

    public void send_add_master_key(java.lang.String key) throws org.apache.thrift.TException
    {
      add_master_key_args args = new add_master_key_args();
      args.setKey(key);
      sendBase("add_master_key", args);
    }

    public int recv_add_master_key() throws MetaException, org.apache.thrift.TException
    {
      add_master_key_result result = new add_master_key_result();
      receiveBase(result, "add_master_key");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "add_master_key failed: unknown result");
    }

    public void update_master_key(int seq_number, java.lang.String key) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_update_master_key(seq_number, key);
      recv_update_master_key();
    }

    public void send_update_master_key(int seq_number, java.lang.String key) throws org.apache.thrift.TException
    {
      update_master_key_args args = new update_master_key_args();
      args.setSeq_number(seq_number);
      args.setKey(key);
      sendBase("update_master_key", args);
    }

    public void recv_update_master_key() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      update_master_key_result result = new update_master_key_result();
      receiveBase(result, "update_master_key");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      return;
    }

    public boolean remove_master_key(int key_seq) throws org.apache.thrift.TException
    {
      send_remove_master_key(key_seq);
      return recv_remove_master_key();
    }

    public void send_remove_master_key(int key_seq) throws org.apache.thrift.TException
    {
      remove_master_key_args args = new remove_master_key_args();
      args.setKey_seq(key_seq);
      sendBase("remove_master_key", args);
    }

    public boolean recv_remove_master_key() throws org.apache.thrift.TException
    {
      remove_master_key_result result = new remove_master_key_result();
      receiveBase(result, "remove_master_key");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "remove_master_key failed: unknown result");
    }

    public java.util.List<java.lang.String> get_master_keys() throws org.apache.thrift.TException
    {
      send_get_master_keys();
      return recv_get_master_keys();
    }

    public void send_get_master_keys() throws org.apache.thrift.TException
    {
      get_master_keys_args args = new get_master_keys_args();
      sendBase("get_master_keys", args);
    }

    public java.util.List<java.lang.String> recv_get_master_keys() throws org.apache.thrift.TException
    {
      get_master_keys_result result = new get_master_keys_result();
      receiveBase(result, "get_master_keys");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_master_keys failed: unknown result");
    }

    public GetOpenTxnsResponse get_open_txns() throws org.apache.thrift.TException
    {
      send_get_open_txns();
      return recv_get_open_txns();
    }

    public void send_get_open_txns() throws org.apache.thrift.TException
    {
      get_open_txns_args args = new get_open_txns_args();
      sendBase("get_open_txns", args);
    }

    public GetOpenTxnsResponse recv_get_open_txns() throws org.apache.thrift.TException
    {
      get_open_txns_result result = new get_open_txns_result();
      receiveBase(result, "get_open_txns");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_open_txns failed: unknown result");
    }

    public GetOpenTxnsInfoResponse get_open_txns_info() throws org.apache.thrift.TException
    {
      send_get_open_txns_info();
      return recv_get_open_txns_info();
    }

    public void send_get_open_txns_info() throws org.apache.thrift.TException
    {
      get_open_txns_info_args args = new get_open_txns_info_args();
      sendBase("get_open_txns_info", args);
    }

    public GetOpenTxnsInfoResponse recv_get_open_txns_info() throws org.apache.thrift.TException
    {
      get_open_txns_info_result result = new get_open_txns_info_result();
      receiveBase(result, "get_open_txns_info");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_open_txns_info failed: unknown result");
    }

    public OpenTxnsResponse open_txns(OpenTxnRequest rqst) throws org.apache.thrift.TException
    {
      send_open_txns(rqst);
      return recv_open_txns();
    }

    public void send_open_txns(OpenTxnRequest rqst) throws org.apache.thrift.TException
    {
      open_txns_args args = new open_txns_args();
      args.setRqst(rqst);
      sendBase("open_txns", args);
    }

    public OpenTxnsResponse recv_open_txns() throws org.apache.thrift.TException
    {
      open_txns_result result = new open_txns_result();
      receiveBase(result, "open_txns");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "open_txns failed: unknown result");
    }

    public void abort_txn(AbortTxnRequest rqst) throws NoSuchTxnException, org.apache.thrift.TException
    {
      send_abort_txn(rqst);
      recv_abort_txn();
    }

    public void send_abort_txn(AbortTxnRequest rqst) throws org.apache.thrift.TException
    {
      abort_txn_args args = new abort_txn_args();
      args.setRqst(rqst);
      sendBase("abort_txn", args);
    }

    public void recv_abort_txn() throws NoSuchTxnException, org.apache.thrift.TException
    {
      abort_txn_result result = new abort_txn_result();
      receiveBase(result, "abort_txn");
      if (result.o1 != null) {
        throw result.o1;
      }
      return;
    }

    public void abort_txns(AbortTxnsRequest rqst) throws NoSuchTxnException, org.apache.thrift.TException
    {
      send_abort_txns(rqst);
      recv_abort_txns();
    }

    public void send_abort_txns(AbortTxnsRequest rqst) throws org.apache.thrift.TException
    {
      abort_txns_args args = new abort_txns_args();
      args.setRqst(rqst);
      sendBase("abort_txns", args);
    }

    public void recv_abort_txns() throws NoSuchTxnException, org.apache.thrift.TException
    {
      abort_txns_result result = new abort_txns_result();
      receiveBase(result, "abort_txns");
      if (result.o1 != null) {
        throw result.o1;
      }
      return;
    }

    public void commit_txn(CommitTxnRequest rqst) throws NoSuchTxnException, TxnAbortedException, org.apache.thrift.TException
    {
      send_commit_txn(rqst);
      recv_commit_txn();
    }

    public void send_commit_txn(CommitTxnRequest rqst) throws org.apache.thrift.TException
    {
      commit_txn_args args = new commit_txn_args();
      args.setRqst(rqst);
      sendBase("commit_txn", args);
    }

    public void recv_commit_txn() throws NoSuchTxnException, TxnAbortedException, org.apache.thrift.TException
    {
      commit_txn_result result = new commit_txn_result();
      receiveBase(result, "commit_txn");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      return;
    }

    public void repl_tbl_writeid_state(ReplTblWriteIdStateRequest rqst) throws org.apache.thrift.TException
    {
      send_repl_tbl_writeid_state(rqst);
      recv_repl_tbl_writeid_state();
    }

    public void send_repl_tbl_writeid_state(ReplTblWriteIdStateRequest rqst) throws org.apache.thrift.TException
    {
      repl_tbl_writeid_state_args args = new repl_tbl_writeid_state_args();
      args.setRqst(rqst);
      sendBase("repl_tbl_writeid_state", args);
    }

    public void recv_repl_tbl_writeid_state() throws org.apache.thrift.TException
    {
      repl_tbl_writeid_state_result result = new repl_tbl_writeid_state_result();
      receiveBase(result, "repl_tbl_writeid_state");
      return;
    }

    public GetValidWriteIdsResponse get_valid_write_ids(GetValidWriteIdsRequest rqst) throws NoSuchTxnException, MetaException, org.apache.thrift.TException
    {
      send_get_valid_write_ids(rqst);
      return recv_get_valid_write_ids();
    }

    public void send_get_valid_write_ids(GetValidWriteIdsRequest rqst) throws org.apache.thrift.TException
    {
      get_valid_write_ids_args args = new get_valid_write_ids_args();
      args.setRqst(rqst);
      sendBase("get_valid_write_ids", args);
    }

    public GetValidWriteIdsResponse recv_get_valid_write_ids() throws NoSuchTxnException, MetaException, org.apache.thrift.TException
    {
      get_valid_write_ids_result result = new get_valid_write_ids_result();
      receiveBase(result, "get_valid_write_ids");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_valid_write_ids failed: unknown result");
    }

    public AllocateTableWriteIdsResponse allocate_table_write_ids(AllocateTableWriteIdsRequest rqst) throws NoSuchTxnException, TxnAbortedException, MetaException, org.apache.thrift.TException
    {
      send_allocate_table_write_ids(rqst);
      return recv_allocate_table_write_ids();
    }

    public void send_allocate_table_write_ids(AllocateTableWriteIdsRequest rqst) throws org.apache.thrift.TException
    {
      allocate_table_write_ids_args args = new allocate_table_write_ids_args();
      args.setRqst(rqst);
      sendBase("allocate_table_write_ids", args);
    }

    public AllocateTableWriteIdsResponse recv_allocate_table_write_ids() throws NoSuchTxnException, TxnAbortedException, MetaException, org.apache.thrift.TException
    {
      allocate_table_write_ids_result result = new allocate_table_write_ids_result();
      receiveBase(result, "allocate_table_write_ids");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "allocate_table_write_ids failed: unknown result");
    }

    public LockResponse lock(LockRequest rqst) throws NoSuchTxnException, TxnAbortedException, org.apache.thrift.TException
    {
      send_lock(rqst);
      return recv_lock();
    }

    public void send_lock(LockRequest rqst) throws org.apache.thrift.TException
    {
      lock_args args = new lock_args();
      args.setRqst(rqst);
      sendBase("lock", args);
    }

    public LockResponse recv_lock() throws NoSuchTxnException, TxnAbortedException, org.apache.thrift.TException
    {
      lock_result result = new lock_result();
      receiveBase(result, "lock");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "lock failed: unknown result");
    }

    public LockResponse check_lock(CheckLockRequest rqst) throws NoSuchTxnException, TxnAbortedException, NoSuchLockException, org.apache.thrift.TException
    {
      send_check_lock(rqst);
      return recv_check_lock();
    }

    public void send_check_lock(CheckLockRequest rqst) throws org.apache.thrift.TException
    {
      check_lock_args args = new check_lock_args();
      args.setRqst(rqst);
      sendBase("check_lock", args);
    }

    public LockResponse recv_check_lock() throws NoSuchTxnException, TxnAbortedException, NoSuchLockException, org.apache.thrift.TException
    {
      check_lock_result result = new check_lock_result();
      receiveBase(result, "check_lock");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "check_lock failed: unknown result");
    }

    public void unlock(UnlockRequest rqst) throws NoSuchLockException, TxnOpenException, org.apache.thrift.TException
    {
      send_unlock(rqst);
      recv_unlock();
    }

    public void send_unlock(UnlockRequest rqst) throws org.apache.thrift.TException
    {
      unlock_args args = new unlock_args();
      args.setRqst(rqst);
      sendBase("unlock", args);
    }

    public void recv_unlock() throws NoSuchLockException, TxnOpenException, org.apache.thrift.TException
    {
      unlock_result result = new unlock_result();
      receiveBase(result, "unlock");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      return;
    }

    public ShowLocksResponse show_locks(ShowLocksRequest rqst) throws org.apache.thrift.TException
    {
      send_show_locks(rqst);
      return recv_show_locks();
    }

    public void send_show_locks(ShowLocksRequest rqst) throws org.apache.thrift.TException
    {
      show_locks_args args = new show_locks_args();
      args.setRqst(rqst);
      sendBase("show_locks", args);
    }

    public ShowLocksResponse recv_show_locks() throws org.apache.thrift.TException
    {
      show_locks_result result = new show_locks_result();
      receiveBase(result, "show_locks");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "show_locks failed: unknown result");
    }

    public void heartbeat(HeartbeatRequest ids) throws NoSuchLockException, NoSuchTxnException, TxnAbortedException, org.apache.thrift.TException
    {
      send_heartbeat(ids);
      recv_heartbeat();
    }

    public void send_heartbeat(HeartbeatRequest ids) throws org.apache.thrift.TException
    {
      heartbeat_args args = new heartbeat_args();
      args.setIds(ids);
      sendBase("heartbeat", args);
    }

    public void recv_heartbeat() throws NoSuchLockException, NoSuchTxnException, TxnAbortedException, org.apache.thrift.TException
    {
      heartbeat_result result = new heartbeat_result();
      receiveBase(result, "heartbeat");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      return;
    }

    public HeartbeatTxnRangeResponse heartbeat_txn_range(HeartbeatTxnRangeRequest txns) throws org.apache.thrift.TException
    {
      send_heartbeat_txn_range(txns);
      return recv_heartbeat_txn_range();
    }

    public void send_heartbeat_txn_range(HeartbeatTxnRangeRequest txns) throws org.apache.thrift.TException
    {
      heartbeat_txn_range_args args = new heartbeat_txn_range_args();
      args.setTxns(txns);
      sendBase("heartbeat_txn_range", args);
    }

    public HeartbeatTxnRangeResponse recv_heartbeat_txn_range() throws org.apache.thrift.TException
    {
      heartbeat_txn_range_result result = new heartbeat_txn_range_result();
      receiveBase(result, "heartbeat_txn_range");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "heartbeat_txn_range failed: unknown result");
    }

    public void compact(CompactionRequest rqst) throws org.apache.thrift.TException
    {
      send_compact(rqst);
      recv_compact();
    }

    public void send_compact(CompactionRequest rqst) throws org.apache.thrift.TException
    {
      compact_args args = new compact_args();
      args.setRqst(rqst);
      sendBase("compact", args);
    }

    public void recv_compact() throws org.apache.thrift.TException
    {
      compact_result result = new compact_result();
      receiveBase(result, "compact");
      return;
    }

    public CompactionResponse compact2(CompactionRequest rqst) throws org.apache.thrift.TException
    {
      send_compact2(rqst);
      return recv_compact2();
    }

    public void send_compact2(CompactionRequest rqst) throws org.apache.thrift.TException
    {
      compact2_args args = new compact2_args();
      args.setRqst(rqst);
      sendBase("compact2", args);
    }

    public CompactionResponse recv_compact2() throws org.apache.thrift.TException
    {
      compact2_result result = new compact2_result();
      receiveBase(result, "compact2");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "compact2 failed: unknown result");
    }

    public ShowCompactResponse show_compact(ShowCompactRequest rqst) throws org.apache.thrift.TException
    {
      send_show_compact(rqst);
      return recv_show_compact();
    }

    public void send_show_compact(ShowCompactRequest rqst) throws org.apache.thrift.TException
    {
      show_compact_args args = new show_compact_args();
      args.setRqst(rqst);
      sendBase("show_compact", args);
    }

    public ShowCompactResponse recv_show_compact() throws org.apache.thrift.TException
    {
      show_compact_result result = new show_compact_result();
      receiveBase(result, "show_compact");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "show_compact failed: unknown result");
    }

    public void add_dynamic_partitions(AddDynamicPartitions rqst) throws NoSuchTxnException, TxnAbortedException, org.apache.thrift.TException
    {
      send_add_dynamic_partitions(rqst);
      recv_add_dynamic_partitions();
    }

    public void send_add_dynamic_partitions(AddDynamicPartitions rqst) throws org.apache.thrift.TException
    {
      add_dynamic_partitions_args args = new add_dynamic_partitions_args();
      args.setRqst(rqst);
      sendBase("add_dynamic_partitions", args);
    }

    public void recv_add_dynamic_partitions() throws NoSuchTxnException, TxnAbortedException, org.apache.thrift.TException
    {
      add_dynamic_partitions_result result = new add_dynamic_partitions_result();
      receiveBase(result, "add_dynamic_partitions");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      return;
    }

    public NotificationEventResponse get_next_notification(NotificationEventRequest rqst) throws org.apache.thrift.TException
    {
      send_get_next_notification(rqst);
      return recv_get_next_notification();
    }

    public void send_get_next_notification(NotificationEventRequest rqst) throws org.apache.thrift.TException
    {
      get_next_notification_args args = new get_next_notification_args();
      args.setRqst(rqst);
      sendBase("get_next_notification", args);
    }

    public NotificationEventResponse recv_get_next_notification() throws org.apache.thrift.TException
    {
      get_next_notification_result result = new get_next_notification_result();
      receiveBase(result, "get_next_notification");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_next_notification failed: unknown result");
    }

    public CurrentNotificationEventId get_current_notificationEventId() throws org.apache.thrift.TException
    {
      send_get_current_notificationEventId();
      return recv_get_current_notificationEventId();
    }

    public void send_get_current_notificationEventId() throws org.apache.thrift.TException
    {
      get_current_notificationEventId_args args = new get_current_notificationEventId_args();
      sendBase("get_current_notificationEventId", args);
    }

    public CurrentNotificationEventId recv_get_current_notificationEventId() throws org.apache.thrift.TException
    {
      get_current_notificationEventId_result result = new get_current_notificationEventId_result();
      receiveBase(result, "get_current_notificationEventId");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_current_notificationEventId failed: unknown result");
    }

    public NotificationEventsCountResponse get_notification_events_count(NotificationEventsCountRequest rqst) throws org.apache.thrift.TException
    {
      send_get_notification_events_count(rqst);
      return recv_get_notification_events_count();
    }

    public void send_get_notification_events_count(NotificationEventsCountRequest rqst) throws org.apache.thrift.TException
    {
      get_notification_events_count_args args = new get_notification_events_count_args();
      args.setRqst(rqst);
      sendBase("get_notification_events_count", args);
    }

    public NotificationEventsCountResponse recv_get_notification_events_count() throws org.apache.thrift.TException
    {
      get_notification_events_count_result result = new get_notification_events_count_result();
      receiveBase(result, "get_notification_events_count");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_notification_events_count failed: unknown result");
    }

    public FireEventResponse fire_listener_event(FireEventRequest rqst) throws org.apache.thrift.TException
    {
      send_fire_listener_event(rqst);
      return recv_fire_listener_event();
    }

    public void send_fire_listener_event(FireEventRequest rqst) throws org.apache.thrift.TException
    {
      fire_listener_event_args args = new fire_listener_event_args();
      args.setRqst(rqst);
      sendBase("fire_listener_event", args);
    }

    public FireEventResponse recv_fire_listener_event() throws org.apache.thrift.TException
    {
      fire_listener_event_result result = new fire_listener_event_result();
      receiveBase(result, "fire_listener_event");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "fire_listener_event failed: unknown result");
    }

    public void flushCache() throws org.apache.thrift.TException
    {
      send_flushCache();
      recv_flushCache();
    }

    public void send_flushCache() throws org.apache.thrift.TException
    {
      flushCache_args args = new flushCache_args();
      sendBase("flushCache", args);
    }

    public void recv_flushCache() throws org.apache.thrift.TException
    {
      flushCache_result result = new flushCache_result();
      receiveBase(result, "flushCache");
      return;
    }

    public CmRecycleResponse cm_recycle(CmRecycleRequest request) throws MetaException, org.apache.thrift.TException
    {
      send_cm_recycle(request);
      return recv_cm_recycle();
    }

    public void send_cm_recycle(CmRecycleRequest request) throws org.apache.thrift.TException
    {
      cm_recycle_args args = new cm_recycle_args();
      args.setRequest(request);
      sendBase("cm_recycle", args);
    }

    public CmRecycleResponse recv_cm_recycle() throws MetaException, org.apache.thrift.TException
    {
      cm_recycle_result result = new cm_recycle_result();
      receiveBase(result, "cm_recycle");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "cm_recycle failed: unknown result");
    }

    public GetFileMetadataByExprResult get_file_metadata_by_expr(GetFileMetadataByExprRequest req) throws org.apache.thrift.TException
    {
      send_get_file_metadata_by_expr(req);
      return recv_get_file_metadata_by_expr();
    }

    public void send_get_file_metadata_by_expr(GetFileMetadataByExprRequest req) throws org.apache.thrift.TException
    {
      get_file_metadata_by_expr_args args = new get_file_metadata_by_expr_args();
      args.setReq(req);
      sendBase("get_file_metadata_by_expr", args);
    }

    public GetFileMetadataByExprResult recv_get_file_metadata_by_expr() throws org.apache.thrift.TException
    {
      get_file_metadata_by_expr_result result = new get_file_metadata_by_expr_result();
      receiveBase(result, "get_file_metadata_by_expr");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_file_metadata_by_expr failed: unknown result");
    }

    public GetFileMetadataResult get_file_metadata(GetFileMetadataRequest req) throws org.apache.thrift.TException
    {
      send_get_file_metadata(req);
      return recv_get_file_metadata();
    }

    public void send_get_file_metadata(GetFileMetadataRequest req) throws org.apache.thrift.TException
    {
      get_file_metadata_args args = new get_file_metadata_args();
      args.setReq(req);
      sendBase("get_file_metadata", args);
    }

    public GetFileMetadataResult recv_get_file_metadata() throws org.apache.thrift.TException
    {
      get_file_metadata_result result = new get_file_metadata_result();
      receiveBase(result, "get_file_metadata");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_file_metadata failed: unknown result");
    }

    public PutFileMetadataResult put_file_metadata(PutFileMetadataRequest req) throws org.apache.thrift.TException
    {
      send_put_file_metadata(req);
      return recv_put_file_metadata();
    }

    public void send_put_file_metadata(PutFileMetadataRequest req) throws org.apache.thrift.TException
    {
      put_file_metadata_args args = new put_file_metadata_args();
      args.setReq(req);
      sendBase("put_file_metadata", args);
    }

    public PutFileMetadataResult recv_put_file_metadata() throws org.apache.thrift.TException
    {
      put_file_metadata_result result = new put_file_metadata_result();
      receiveBase(result, "put_file_metadata");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "put_file_metadata failed: unknown result");
    }

    public ClearFileMetadataResult clear_file_metadata(ClearFileMetadataRequest req) throws org.apache.thrift.TException
    {
      send_clear_file_metadata(req);
      return recv_clear_file_metadata();
    }

    public void send_clear_file_metadata(ClearFileMetadataRequest req) throws org.apache.thrift.TException
    {
      clear_file_metadata_args args = new clear_file_metadata_args();
      args.setReq(req);
      sendBase("clear_file_metadata", args);
    }

    public ClearFileMetadataResult recv_clear_file_metadata() throws org.apache.thrift.TException
    {
      clear_file_metadata_result result = new clear_file_metadata_result();
      receiveBase(result, "clear_file_metadata");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "clear_file_metadata failed: unknown result");
    }

    public CacheFileMetadataResult cache_file_metadata(CacheFileMetadataRequest req) throws org.apache.thrift.TException
    {
      send_cache_file_metadata(req);
      return recv_cache_file_metadata();
    }

    public void send_cache_file_metadata(CacheFileMetadataRequest req) throws org.apache.thrift.TException
    {
      cache_file_metadata_args args = new cache_file_metadata_args();
      args.setReq(req);
      sendBase("cache_file_metadata", args);
    }

    public CacheFileMetadataResult recv_cache_file_metadata() throws org.apache.thrift.TException
    {
      cache_file_metadata_result result = new cache_file_metadata_result();
      receiveBase(result, "cache_file_metadata");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "cache_file_metadata failed: unknown result");
    }

    public java.lang.String get_metastore_db_uuid() throws MetaException, org.apache.thrift.TException
    {
      send_get_metastore_db_uuid();
      return recv_get_metastore_db_uuid();
    }

    public void send_get_metastore_db_uuid() throws org.apache.thrift.TException
    {
      get_metastore_db_uuid_args args = new get_metastore_db_uuid_args();
      sendBase("get_metastore_db_uuid", args);
    }

    public java.lang.String recv_get_metastore_db_uuid() throws MetaException, org.apache.thrift.TException
    {
      get_metastore_db_uuid_result result = new get_metastore_db_uuid_result();
      receiveBase(result, "get_metastore_db_uuid");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_metastore_db_uuid failed: unknown result");
    }

    public WMCreateResourcePlanResponse create_resource_plan(WMCreateResourcePlanRequest request) throws AlreadyExistsException, InvalidObjectException, MetaException, org.apache.thrift.TException
    {
      send_create_resource_plan(request);
      return recv_create_resource_plan();
    }

    public void send_create_resource_plan(WMCreateResourcePlanRequest request) throws org.apache.thrift.TException
    {
      create_resource_plan_args args = new create_resource_plan_args();
      args.setRequest(request);
      sendBase("create_resource_plan", args);
    }

    public WMCreateResourcePlanResponse recv_create_resource_plan() throws AlreadyExistsException, InvalidObjectException, MetaException, org.apache.thrift.TException
    {
      create_resource_plan_result result = new create_resource_plan_result();
      receiveBase(result, "create_resource_plan");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "create_resource_plan failed: unknown result");
    }

    public WMGetResourcePlanResponse get_resource_plan(WMGetResourcePlanRequest request) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_get_resource_plan(request);
      return recv_get_resource_plan();
    }

    public void send_get_resource_plan(WMGetResourcePlanRequest request) throws org.apache.thrift.TException
    {
      get_resource_plan_args args = new get_resource_plan_args();
      args.setRequest(request);
      sendBase("get_resource_plan", args);
    }

    public WMGetResourcePlanResponse recv_get_resource_plan() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      get_resource_plan_result result = new get_resource_plan_result();
      receiveBase(result, "get_resource_plan");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_resource_plan failed: unknown result");
    }

    public WMGetActiveResourcePlanResponse get_active_resource_plan(WMGetActiveResourcePlanRequest request) throws MetaException, org.apache.thrift.TException
    {
      send_get_active_resource_plan(request);
      return recv_get_active_resource_plan();
    }

    public void send_get_active_resource_plan(WMGetActiveResourcePlanRequest request) throws org.apache.thrift.TException
    {
      get_active_resource_plan_args args = new get_active_resource_plan_args();
      args.setRequest(request);
      sendBase("get_active_resource_plan", args);
    }

    public WMGetActiveResourcePlanResponse recv_get_active_resource_plan() throws MetaException, org.apache.thrift.TException
    {
      get_active_resource_plan_result result = new get_active_resource_plan_result();
      receiveBase(result, "get_active_resource_plan");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_active_resource_plan failed: unknown result");
    }

    public WMGetAllResourcePlanResponse get_all_resource_plans(WMGetAllResourcePlanRequest request) throws MetaException, org.apache.thrift.TException
    {
      send_get_all_resource_plans(request);
      return recv_get_all_resource_plans();
    }

    public void send_get_all_resource_plans(WMGetAllResourcePlanRequest request) throws org.apache.thrift.TException
    {
      get_all_resource_plans_args args = new get_all_resource_plans_args();
      args.setRequest(request);
      sendBase("get_all_resource_plans", args);
    }

    public WMGetAllResourcePlanResponse recv_get_all_resource_plans() throws MetaException, org.apache.thrift.TException
    {
      get_all_resource_plans_result result = new get_all_resource_plans_result();
      receiveBase(result, "get_all_resource_plans");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_all_resource_plans failed: unknown result");
    }

    public WMAlterResourcePlanResponse alter_resource_plan(WMAlterResourcePlanRequest request) throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      send_alter_resource_plan(request);
      return recv_alter_resource_plan();
    }

    public void send_alter_resource_plan(WMAlterResourcePlanRequest request) throws org.apache.thrift.TException
    {
      alter_resource_plan_args args = new alter_resource_plan_args();
      args.setRequest(request);
      sendBase("alter_resource_plan", args);
    }

    public WMAlterResourcePlanResponse recv_alter_resource_plan() throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      alter_resource_plan_result result = new alter_resource_plan_result();
      receiveBase(result, "alter_resource_plan");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "alter_resource_plan failed: unknown result");
    }

    public WMValidateResourcePlanResponse validate_resource_plan(WMValidateResourcePlanRequest request) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_validate_resource_plan(request);
      return recv_validate_resource_plan();
    }

    public void send_validate_resource_plan(WMValidateResourcePlanRequest request) throws org.apache.thrift.TException
    {
      validate_resource_plan_args args = new validate_resource_plan_args();
      args.setRequest(request);
      sendBase("validate_resource_plan", args);
    }

    public WMValidateResourcePlanResponse recv_validate_resource_plan() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      validate_resource_plan_result result = new validate_resource_plan_result();
      receiveBase(result, "validate_resource_plan");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "validate_resource_plan failed: unknown result");
    }

    public WMDropResourcePlanResponse drop_resource_plan(WMDropResourcePlanRequest request) throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      send_drop_resource_plan(request);
      return recv_drop_resource_plan();
    }

    public void send_drop_resource_plan(WMDropResourcePlanRequest request) throws org.apache.thrift.TException
    {
      drop_resource_plan_args args = new drop_resource_plan_args();
      args.setRequest(request);
      sendBase("drop_resource_plan", args);
    }

    public WMDropResourcePlanResponse recv_drop_resource_plan() throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      drop_resource_plan_result result = new drop_resource_plan_result();
      receiveBase(result, "drop_resource_plan");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "drop_resource_plan failed: unknown result");
    }

    public WMCreateTriggerResponse create_wm_trigger(WMCreateTriggerRequest request) throws AlreadyExistsException, NoSuchObjectException, InvalidObjectException, MetaException, org.apache.thrift.TException
    {
      send_create_wm_trigger(request);
      return recv_create_wm_trigger();
    }

    public void send_create_wm_trigger(WMCreateTriggerRequest request) throws org.apache.thrift.TException
    {
      create_wm_trigger_args args = new create_wm_trigger_args();
      args.setRequest(request);
      sendBase("create_wm_trigger", args);
    }

    public WMCreateTriggerResponse recv_create_wm_trigger() throws AlreadyExistsException, NoSuchObjectException, InvalidObjectException, MetaException, org.apache.thrift.TException
    {
      create_wm_trigger_result result = new create_wm_trigger_result();
      receiveBase(result, "create_wm_trigger");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      if (result.o4 != null) {
        throw result.o4;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "create_wm_trigger failed: unknown result");
    }

    public WMAlterTriggerResponse alter_wm_trigger(WMAlterTriggerRequest request) throws NoSuchObjectException, InvalidObjectException, MetaException, org.apache.thrift.TException
    {
      send_alter_wm_trigger(request);
      return recv_alter_wm_trigger();
    }

    public void send_alter_wm_trigger(WMAlterTriggerRequest request) throws org.apache.thrift.TException
    {
      alter_wm_trigger_args args = new alter_wm_trigger_args();
      args.setRequest(request);
      sendBase("alter_wm_trigger", args);
    }

    public WMAlterTriggerResponse recv_alter_wm_trigger() throws NoSuchObjectException, InvalidObjectException, MetaException, org.apache.thrift.TException
    {
      alter_wm_trigger_result result = new alter_wm_trigger_result();
      receiveBase(result, "alter_wm_trigger");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "alter_wm_trigger failed: unknown result");
    }

    public WMDropTriggerResponse drop_wm_trigger(WMDropTriggerRequest request) throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      send_drop_wm_trigger(request);
      return recv_drop_wm_trigger();
    }

    public void send_drop_wm_trigger(WMDropTriggerRequest request) throws org.apache.thrift.TException
    {
      drop_wm_trigger_args args = new drop_wm_trigger_args();
      args.setRequest(request);
      sendBase("drop_wm_trigger", args);
    }

    public WMDropTriggerResponse recv_drop_wm_trigger() throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      drop_wm_trigger_result result = new drop_wm_trigger_result();
      receiveBase(result, "drop_wm_trigger");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "drop_wm_trigger failed: unknown result");
    }

    public WMGetTriggersForResourePlanResponse get_triggers_for_resourceplan(WMGetTriggersForResourePlanRequest request) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_get_triggers_for_resourceplan(request);
      return recv_get_triggers_for_resourceplan();
    }

    public void send_get_triggers_for_resourceplan(WMGetTriggersForResourePlanRequest request) throws org.apache.thrift.TException
    {
      get_triggers_for_resourceplan_args args = new get_triggers_for_resourceplan_args();
      args.setRequest(request);
      sendBase("get_triggers_for_resourceplan", args);
    }

    public WMGetTriggersForResourePlanResponse recv_get_triggers_for_resourceplan() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      get_triggers_for_resourceplan_result result = new get_triggers_for_resourceplan_result();
      receiveBase(result, "get_triggers_for_resourceplan");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_triggers_for_resourceplan failed: unknown result");
    }

    public WMCreatePoolResponse create_wm_pool(WMCreatePoolRequest request) throws AlreadyExistsException, NoSuchObjectException, InvalidObjectException, MetaException, org.apache.thrift.TException
    {
      send_create_wm_pool(request);
      return recv_create_wm_pool();
    }

    public void send_create_wm_pool(WMCreatePoolRequest request) throws org.apache.thrift.TException
    {
      create_wm_pool_args args = new create_wm_pool_args();
      args.setRequest(request);
      sendBase("create_wm_pool", args);
    }

    public WMCreatePoolResponse recv_create_wm_pool() throws AlreadyExistsException, NoSuchObjectException, InvalidObjectException, MetaException, org.apache.thrift.TException
    {
      create_wm_pool_result result = new create_wm_pool_result();
      receiveBase(result, "create_wm_pool");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      if (result.o4 != null) {
        throw result.o4;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "create_wm_pool failed: unknown result");
    }

    public WMAlterPoolResponse alter_wm_pool(WMAlterPoolRequest request) throws AlreadyExistsException, NoSuchObjectException, InvalidObjectException, MetaException, org.apache.thrift.TException
    {
      send_alter_wm_pool(request);
      return recv_alter_wm_pool();
    }

    public void send_alter_wm_pool(WMAlterPoolRequest request) throws org.apache.thrift.TException
    {
      alter_wm_pool_args args = new alter_wm_pool_args();
      args.setRequest(request);
      sendBase("alter_wm_pool", args);
    }

    public WMAlterPoolResponse recv_alter_wm_pool() throws AlreadyExistsException, NoSuchObjectException, InvalidObjectException, MetaException, org.apache.thrift.TException
    {
      alter_wm_pool_result result = new alter_wm_pool_result();
      receiveBase(result, "alter_wm_pool");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      if (result.o4 != null) {
        throw result.o4;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "alter_wm_pool failed: unknown result");
    }

    public WMDropPoolResponse drop_wm_pool(WMDropPoolRequest request) throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      send_drop_wm_pool(request);
      return recv_drop_wm_pool();
    }

    public void send_drop_wm_pool(WMDropPoolRequest request) throws org.apache.thrift.TException
    {
      drop_wm_pool_args args = new drop_wm_pool_args();
      args.setRequest(request);
      sendBase("drop_wm_pool", args);
    }

    public WMDropPoolResponse recv_drop_wm_pool() throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      drop_wm_pool_result result = new drop_wm_pool_result();
      receiveBase(result, "drop_wm_pool");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "drop_wm_pool failed: unknown result");
    }

    public WMCreateOrUpdateMappingResponse create_or_update_wm_mapping(WMCreateOrUpdateMappingRequest request) throws AlreadyExistsException, NoSuchObjectException, InvalidObjectException, MetaException, org.apache.thrift.TException
    {
      send_create_or_update_wm_mapping(request);
      return recv_create_or_update_wm_mapping();
    }

    public void send_create_or_update_wm_mapping(WMCreateOrUpdateMappingRequest request) throws org.apache.thrift.TException
    {
      create_or_update_wm_mapping_args args = new create_or_update_wm_mapping_args();
      args.setRequest(request);
      sendBase("create_or_update_wm_mapping", args);
    }

    public WMCreateOrUpdateMappingResponse recv_create_or_update_wm_mapping() throws AlreadyExistsException, NoSuchObjectException, InvalidObjectException, MetaException, org.apache.thrift.TException
    {
      create_or_update_wm_mapping_result result = new create_or_update_wm_mapping_result();
      receiveBase(result, "create_or_update_wm_mapping");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      if (result.o4 != null) {
        throw result.o4;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "create_or_update_wm_mapping failed: unknown result");
    }

    public WMDropMappingResponse drop_wm_mapping(WMDropMappingRequest request) throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      send_drop_wm_mapping(request);
      return recv_drop_wm_mapping();
    }

    public void send_drop_wm_mapping(WMDropMappingRequest request) throws org.apache.thrift.TException
    {
      drop_wm_mapping_args args = new drop_wm_mapping_args();
      args.setRequest(request);
      sendBase("drop_wm_mapping", args);
    }

    public WMDropMappingResponse recv_drop_wm_mapping() throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      drop_wm_mapping_result result = new drop_wm_mapping_result();
      receiveBase(result, "drop_wm_mapping");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "drop_wm_mapping failed: unknown result");
    }

    public WMCreateOrDropTriggerToPoolMappingResponse create_or_drop_wm_trigger_to_pool_mapping(WMCreateOrDropTriggerToPoolMappingRequest request) throws AlreadyExistsException, NoSuchObjectException, InvalidObjectException, MetaException, org.apache.thrift.TException
    {
      send_create_or_drop_wm_trigger_to_pool_mapping(request);
      return recv_create_or_drop_wm_trigger_to_pool_mapping();
    }

    public void send_create_or_drop_wm_trigger_to_pool_mapping(WMCreateOrDropTriggerToPoolMappingRequest request) throws org.apache.thrift.TException
    {
      create_or_drop_wm_trigger_to_pool_mapping_args args = new create_or_drop_wm_trigger_to_pool_mapping_args();
      args.setRequest(request);
      sendBase("create_or_drop_wm_trigger_to_pool_mapping", args);
    }

    public WMCreateOrDropTriggerToPoolMappingResponse recv_create_or_drop_wm_trigger_to_pool_mapping() throws AlreadyExistsException, NoSuchObjectException, InvalidObjectException, MetaException, org.apache.thrift.TException
    {
      create_or_drop_wm_trigger_to_pool_mapping_result result = new create_or_drop_wm_trigger_to_pool_mapping_result();
      receiveBase(result, "create_or_drop_wm_trigger_to_pool_mapping");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      if (result.o4 != null) {
        throw result.o4;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "create_or_drop_wm_trigger_to_pool_mapping failed: unknown result");
    }

    public void create_ischema(ISchema schema) throws AlreadyExistsException, NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_create_ischema(schema);
      recv_create_ischema();
    }

    public void send_create_ischema(ISchema schema) throws org.apache.thrift.TException
    {
      create_ischema_args args = new create_ischema_args();
      args.setSchema(schema);
      sendBase("create_ischema", args);
    }

    public void recv_create_ischema() throws AlreadyExistsException, NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      create_ischema_result result = new create_ischema_result();
      receiveBase(result, "create_ischema");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      return;
    }

    public void alter_ischema(AlterISchemaRequest rqst) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_alter_ischema(rqst);
      recv_alter_ischema();
    }

    public void send_alter_ischema(AlterISchemaRequest rqst) throws org.apache.thrift.TException
    {
      alter_ischema_args args = new alter_ischema_args();
      args.setRqst(rqst);
      sendBase("alter_ischema", args);
    }

    public void recv_alter_ischema() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      alter_ischema_result result = new alter_ischema_result();
      receiveBase(result, "alter_ischema");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      return;
    }

    public ISchema get_ischema(ISchemaName name) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_get_ischema(name);
      return recv_get_ischema();
    }

    public void send_get_ischema(ISchemaName name) throws org.apache.thrift.TException
    {
      get_ischema_args args = new get_ischema_args();
      args.setName(name);
      sendBase("get_ischema", args);
    }

    public ISchema recv_get_ischema() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      get_ischema_result result = new get_ischema_result();
      receiveBase(result, "get_ischema");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_ischema failed: unknown result");
    }

    public void drop_ischema(ISchemaName name) throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      send_drop_ischema(name);
      recv_drop_ischema();
    }

    public void send_drop_ischema(ISchemaName name) throws org.apache.thrift.TException
    {
      drop_ischema_args args = new drop_ischema_args();
      args.setName(name);
      sendBase("drop_ischema", args);
    }

    public void recv_drop_ischema() throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      drop_ischema_result result = new drop_ischema_result();
      receiveBase(result, "drop_ischema");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      return;
    }

    public void add_schema_version(SchemaVersion schemaVersion) throws AlreadyExistsException, NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_add_schema_version(schemaVersion);
      recv_add_schema_version();
    }

    public void send_add_schema_version(SchemaVersion schemaVersion) throws org.apache.thrift.TException
    {
      add_schema_version_args args = new add_schema_version_args();
      args.setSchemaVersion(schemaVersion);
      sendBase("add_schema_version", args);
    }

    public void recv_add_schema_version() throws AlreadyExistsException, NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      add_schema_version_result result = new add_schema_version_result();
      receiveBase(result, "add_schema_version");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      return;
    }

    public SchemaVersion get_schema_version(SchemaVersionDescriptor schemaVersion) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_get_schema_version(schemaVersion);
      return recv_get_schema_version();
    }

    public void send_get_schema_version(SchemaVersionDescriptor schemaVersion) throws org.apache.thrift.TException
    {
      get_schema_version_args args = new get_schema_version_args();
      args.setSchemaVersion(schemaVersion);
      sendBase("get_schema_version", args);
    }

    public SchemaVersion recv_get_schema_version() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      get_schema_version_result result = new get_schema_version_result();
      receiveBase(result, "get_schema_version");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_schema_version failed: unknown result");
    }

    public SchemaVersion get_schema_latest_version(ISchemaName schemaName) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_get_schema_latest_version(schemaName);
      return recv_get_schema_latest_version();
    }

    public void send_get_schema_latest_version(ISchemaName schemaName) throws org.apache.thrift.TException
    {
      get_schema_latest_version_args args = new get_schema_latest_version_args();
      args.setSchemaName(schemaName);
      sendBase("get_schema_latest_version", args);
    }

    public SchemaVersion recv_get_schema_latest_version() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      get_schema_latest_version_result result = new get_schema_latest_version_result();
      receiveBase(result, "get_schema_latest_version");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_schema_latest_version failed: unknown result");
    }

    public java.util.List<SchemaVersion> get_schema_all_versions(ISchemaName schemaName) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_get_schema_all_versions(schemaName);
      return recv_get_schema_all_versions();
    }

    public void send_get_schema_all_versions(ISchemaName schemaName) throws org.apache.thrift.TException
    {
      get_schema_all_versions_args args = new get_schema_all_versions_args();
      args.setSchemaName(schemaName);
      sendBase("get_schema_all_versions", args);
    }

    public java.util.List<SchemaVersion> recv_get_schema_all_versions() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      get_schema_all_versions_result result = new get_schema_all_versions_result();
      receiveBase(result, "get_schema_all_versions");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_schema_all_versions failed: unknown result");
    }

    public void drop_schema_version(SchemaVersionDescriptor schemaVersion) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_drop_schema_version(schemaVersion);
      recv_drop_schema_version();
    }

    public void send_drop_schema_version(SchemaVersionDescriptor schemaVersion) throws org.apache.thrift.TException
    {
      drop_schema_version_args args = new drop_schema_version_args();
      args.setSchemaVersion(schemaVersion);
      sendBase("drop_schema_version", args);
    }

    public void recv_drop_schema_version() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      drop_schema_version_result result = new drop_schema_version_result();
      receiveBase(result, "drop_schema_version");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      return;
    }

    public FindSchemasByColsResp get_schemas_by_cols(FindSchemasByColsRqst rqst) throws MetaException, org.apache.thrift.TException
    {
      send_get_schemas_by_cols(rqst);
      return recv_get_schemas_by_cols();
    }

    public void send_get_schemas_by_cols(FindSchemasByColsRqst rqst) throws org.apache.thrift.TException
    {
      get_schemas_by_cols_args args = new get_schemas_by_cols_args();
      args.setRqst(rqst);
      sendBase("get_schemas_by_cols", args);
    }

    public FindSchemasByColsResp recv_get_schemas_by_cols() throws MetaException, org.apache.thrift.TException
    {
      get_schemas_by_cols_result result = new get_schemas_by_cols_result();
      receiveBase(result, "get_schemas_by_cols");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_schemas_by_cols failed: unknown result");
    }

    public void map_schema_version_to_serde(MapSchemaVersionToSerdeRequest rqst) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_map_schema_version_to_serde(rqst);
      recv_map_schema_version_to_serde();
    }

    public void send_map_schema_version_to_serde(MapSchemaVersionToSerdeRequest rqst) throws org.apache.thrift.TException
    {
      map_schema_version_to_serde_args args = new map_schema_version_to_serde_args();
      args.setRqst(rqst);
      sendBase("map_schema_version_to_serde", args);
    }

    public void recv_map_schema_version_to_serde() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      map_schema_version_to_serde_result result = new map_schema_version_to_serde_result();
      receiveBase(result, "map_schema_version_to_serde");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      return;
    }

    public void set_schema_version_state(SetSchemaVersionStateRequest rqst) throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      send_set_schema_version_state(rqst);
      recv_set_schema_version_state();
    }

    public void send_set_schema_version_state(SetSchemaVersionStateRequest rqst) throws org.apache.thrift.TException
    {
      set_schema_version_state_args args = new set_schema_version_state_args();
      args.setRqst(rqst);
      sendBase("set_schema_version_state", args);
    }

    public void recv_set_schema_version_state() throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException
    {
      set_schema_version_state_result result = new set_schema_version_state_result();
      receiveBase(result, "set_schema_version_state");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      if (result.o3 != null) {
        throw result.o3;
      }
      return;
    }

    public void add_serde(SerDeInfo serde) throws AlreadyExistsException, MetaException, org.apache.thrift.TException
    {
      send_add_serde(serde);
      recv_add_serde();
    }

    public void send_add_serde(SerDeInfo serde) throws org.apache.thrift.TException
    {
      add_serde_args args = new add_serde_args();
      args.setSerde(serde);
      sendBase("add_serde", args);
    }

    public void recv_add_serde() throws AlreadyExistsException, MetaException, org.apache.thrift.TException
    {
      add_serde_result result = new add_serde_result();
      receiveBase(result, "add_serde");
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      return;
    }

    public SerDeInfo get_serde(GetSerdeRequest rqst) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      send_get_serde(rqst);
      return recv_get_serde();
    }

    public void send_get_serde(GetSerdeRequest rqst) throws org.apache.thrift.TException
    {
      get_serde_args args = new get_serde_args();
      args.setRqst(rqst);
      sendBase("get_serde", args);
    }

    public SerDeInfo recv_get_serde() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
    {
      get_serde_result result = new get_serde_result();
      receiveBase(result, "get_serde");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      if (result.o2 != null) {
        throw result.o2;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_serde failed: unknown result");
    }

    public LockResponse get_lock_materialization_rebuild(java.lang.String dbName, java.lang.String tableName, long txnId) throws org.apache.thrift.TException
    {
      send_get_lock_materialization_rebuild(dbName, tableName, txnId);
      return recv_get_lock_materialization_rebuild();
    }

    public void send_get_lock_materialization_rebuild(java.lang.String dbName, java.lang.String tableName, long txnId) throws org.apache.thrift.TException
    {
      get_lock_materialization_rebuild_args args = new get_lock_materialization_rebuild_args();
      args.setDbName(dbName);
      args.setTableName(tableName);
      args.setTxnId(txnId);
      sendBase("get_lock_materialization_rebuild", args);
    }

    public LockResponse recv_get_lock_materialization_rebuild() throws org.apache.thrift.TException
    {
      get_lock_materialization_rebuild_result result = new get_lock_materialization_rebuild_result();
      receiveBase(result, "get_lock_materialization_rebuild");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_lock_materialization_rebuild failed: unknown result");
    }

    public boolean heartbeat_lock_materialization_rebuild(java.lang.String dbName, java.lang.String tableName, long txnId) throws org.apache.thrift.TException
    {
      send_heartbeat_lock_materialization_rebuild(dbName, tableName, txnId);
      return recv_heartbeat_lock_materialization_rebuild();
    }

    public void send_heartbeat_lock_materialization_rebuild(java.lang.String dbName, java.lang.String tableName, long txnId) throws org.apache.thrift.TException
    {
      heartbeat_lock_materialization_rebuild_args args = new heartbeat_lock_materialization_rebuild_args();
      args.setDbName(dbName);
      args.setTableName(tableName);
      args.setTxnId(txnId);
      sendBase("heartbeat_lock_materialization_rebuild", args);
    }

    public boolean recv_heartbeat_lock_materialization_rebuild() throws org.apache.thrift.TException
    {
      heartbeat_lock_materialization_rebuild_result result = new heartbeat_lock_materialization_rebuild_result();
      receiveBase(result, "heartbeat_lock_materialization_rebuild");
      if (result.isSetSuccess()) {
        return result.success;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "heartbeat_lock_materialization_rebuild failed: unknown result");
    }

    public void add_runtime_stats(RuntimeStat stat) throws MetaException, org.apache.thrift.TException
    {
      send_add_runtime_stats(stat);
      recv_add_runtime_stats();
    }

    public void send_add_runtime_stats(RuntimeStat stat) throws org.apache.thrift.TException
    {
      add_runtime_stats_args args = new add_runtime_stats_args();
      args.setStat(stat);
      sendBase("add_runtime_stats", args);
    }

    public void recv_add_runtime_stats() throws MetaException, org.apache.thrift.TException
    {
      add_runtime_stats_result result = new add_runtime_stats_result();
      receiveBase(result, "add_runtime_stats");
      if (result.o1 != null) {
        throw result.o1;
      }
      return;
    }

    public java.util.List<RuntimeStat> get_runtime_stats(GetRuntimeStatsRequest rqst) throws MetaException, org.apache.thrift.TException
    {
      send_get_runtime_stats(rqst);
      return recv_get_runtime_stats();
    }

    public void send_get_runtime_stats(GetRuntimeStatsRequest rqst) throws org.apache.thrift.TException
    {
      get_runtime_stats_args args = new get_runtime_stats_args();
      args.setRqst(rqst);
      sendBase("get_runtime_stats", args);
    }

    public java.util.List<RuntimeStat> recv_get_runtime_stats() throws MetaException, org.apache.thrift.TException
    {
      get_runtime_stats_result result = new get_runtime_stats_result();
      receiveBase(result, "get_runtime_stats");
      if (result.isSetSuccess()) {
        return result.success;
      }
      if (result.o1 != null) {
        throw result.o1;
      }
      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_runtime_stats failed: unknown result");
    }

  }
  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class AsyncClient extends com.facebook.fb303.FacebookService.AsyncClient implements AsyncIface {
    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class Factory implements org.apache.thrift.async.TAsyncClientFactory<AsyncClient> {
      private org.apache.thrift.async.TAsyncClientManager clientManager;
      private org.apache.thrift.protocol.TProtocolFactory protocolFactory;
      public Factory(org.apache.thrift.async.TAsyncClientManager clientManager, org.apache.thrift.protocol.TProtocolFactory protocolFactory) {
        this.clientManager = clientManager;
        this.protocolFactory = protocolFactory;
      }
      public AsyncClient getAsyncClient(org.apache.thrift.transport.TNonblockingTransport transport) {
        return new AsyncClient(protocolFactory, clientManager, transport);
      }
    }

    public AsyncClient(org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.async.TAsyncClientManager clientManager, org.apache.thrift.transport.TNonblockingTransport transport) {
      super(protocolFactory, clientManager, transport);
    }

    public void getMetaConf(java.lang.String key, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      getMetaConf_call method_call = new getMetaConf_call(key, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class getMetaConf_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.String> {
      private java.lang.String key;
      public getMetaConf_call(java.lang.String key, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.key = key;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getMetaConf", org.apache.thrift.protocol.TMessageType.CALL, 0));
        getMetaConf_args args = new getMetaConf_args();
        args.setKey(key);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.lang.String getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_getMetaConf();
      }
    }

    public void setMetaConf(java.lang.String key, java.lang.String value, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      setMetaConf_call method_call = new setMetaConf_call(key, value, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class setMetaConf_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private java.lang.String key;
      private java.lang.String value;
      public setMetaConf_call(java.lang.String key, java.lang.String value, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.key = key;
        this.value = value;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("setMetaConf", org.apache.thrift.protocol.TMessageType.CALL, 0));
        setMetaConf_args args = new setMetaConf_args();
        args.setKey(key);
        args.setValue(value);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void init_schema(java.lang.String dbType, java.lang.String username, java.lang.String password, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      init_schema_call method_call = new init_schema_call(dbType, username, password, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class init_schema_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Boolean> {
      private java.lang.String dbType;
      private java.lang.String username;
      private java.lang.String password;
      public init_schema_call(java.lang.String dbType, java.lang.String username, java.lang.String password, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.dbType = dbType;
        this.username = username;
        this.password = password;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("init_schema", org.apache.thrift.protocol.TMessageType.CALL, 0));
        init_schema_args args = new init_schema_args();
        args.setDbType(dbType);
        args.setUsername(username);
        args.setPassword(password);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.lang.Boolean getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_init_schema();
      }
    }

    public void create_catalog(CreateCatalogRequest catalog, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      create_catalog_call method_call = new create_catalog_call(catalog, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_catalog_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private CreateCatalogRequest catalog;
      public create_catalog_call(CreateCatalogRequest catalog, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.catalog = catalog;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("create_catalog", org.apache.thrift.protocol.TMessageType.CALL, 0));
        create_catalog_args args = new create_catalog_args();
        args.setCatalog(catalog);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws AlreadyExistsException, InvalidObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void alter_catalog(AlterCatalogRequest rqst, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      alter_catalog_call method_call = new alter_catalog_call(rqst, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_catalog_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private AlterCatalogRequest rqst;
      public alter_catalog_call(AlterCatalogRequest rqst, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.rqst = rqst;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("alter_catalog", org.apache.thrift.protocol.TMessageType.CALL, 0));
        alter_catalog_args args = new alter_catalog_args();
        args.setRqst(rqst);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void get_catalog(GetCatalogRequest catName, org.apache.thrift.async.AsyncMethodCallback<GetCatalogResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_catalog_call method_call = new get_catalog_call(catName, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_catalog_call extends org.apache.thrift.async.TAsyncMethodCall<GetCatalogResponse> {
      private GetCatalogRequest catName;
      public get_catalog_call(GetCatalogRequest catName, org.apache.thrift.async.AsyncMethodCallback<GetCatalogResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.catName = catName;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_catalog", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_catalog_args args = new get_catalog_args();
        args.setCatName(catName);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public GetCatalogResponse getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_catalog();
      }
    }

    public void get_catalogs(org.apache.thrift.async.AsyncMethodCallback<GetCatalogsResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_catalogs_call method_call = new get_catalogs_call(resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_catalogs_call extends org.apache.thrift.async.TAsyncMethodCall<GetCatalogsResponse> {
      public get_catalogs_call(org.apache.thrift.async.AsyncMethodCallback<GetCatalogsResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_catalogs", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_catalogs_args args = new get_catalogs_args();
        args.write(prot);
        prot.writeMessageEnd();
      }

      public GetCatalogsResponse getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_catalogs();
      }
    }

    public void drop_catalog(DropCatalogRequest catName, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      drop_catalog_call method_call = new drop_catalog_call(catName, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_catalog_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private DropCatalogRequest catName;
      public drop_catalog_call(DropCatalogRequest catName, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.catName = catName;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("drop_catalog", org.apache.thrift.protocol.TMessageType.CALL, 0));
        drop_catalog_args args = new drop_catalog_args();
        args.setCatName(catName);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void create_database(Database database, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      create_database_call method_call = new create_database_call(database, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_database_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private Database database;
      public create_database_call(Database database, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.database = database;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("create_database", org.apache.thrift.protocol.TMessageType.CALL, 0));
        create_database_args args = new create_database_args();
        args.setDatabase(database);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws AlreadyExistsException, InvalidObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void get_database(java.lang.String name, org.apache.thrift.async.AsyncMethodCallback<Database> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_database_call method_call = new get_database_call(name, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_database_call extends org.apache.thrift.async.TAsyncMethodCall<Database> {
      private java.lang.String name;
      public get_database_call(java.lang.String name, org.apache.thrift.async.AsyncMethodCallback<Database> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.name = name;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_database", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_database_args args = new get_database_args();
        args.setName(name);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Database getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_database();
      }
    }

    public void drop_database(java.lang.String name, boolean deleteData, boolean cascade, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      drop_database_call method_call = new drop_database_call(name, deleteData, cascade, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_database_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private java.lang.String name;
      private boolean deleteData;
      private boolean cascade;
      public drop_database_call(java.lang.String name, boolean deleteData, boolean cascade, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.name = name;
        this.deleteData = deleteData;
        this.cascade = cascade;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("drop_database", org.apache.thrift.protocol.TMessageType.CALL, 0));
        drop_database_args args = new drop_database_args();
        args.setName(name);
        args.setDeleteData(deleteData);
        args.setCascade(cascade);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void get_databases(java.lang.String pattern, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_databases_call method_call = new get_databases_call(pattern, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_databases_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<java.lang.String>> {
      private java.lang.String pattern;
      public get_databases_call(java.lang.String pattern, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.pattern = pattern;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_databases", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_databases_args args = new get_databases_args();
        args.setPattern(pattern);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.List<java.lang.String> getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_databases();
      }
    }

    public void get_all_databases(org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_all_databases_call method_call = new get_all_databases_call(resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_all_databases_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<java.lang.String>> {
      public get_all_databases_call(org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_all_databases", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_all_databases_args args = new get_all_databases_args();
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.List<java.lang.String> getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_all_databases();
      }
    }

    public void alter_database(java.lang.String dbname, Database db, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      alter_database_call method_call = new alter_database_call(dbname, db, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_database_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private java.lang.String dbname;
      private Database db;
      public alter_database_call(java.lang.String dbname, Database db, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.dbname = dbname;
        this.db = db;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("alter_database", org.apache.thrift.protocol.TMessageType.CALL, 0));
        alter_database_args args = new alter_database_args();
        args.setDbname(dbname);
        args.setDb(db);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws MetaException, NoSuchObjectException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void get_type(java.lang.String name, org.apache.thrift.async.AsyncMethodCallback<Type> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_type_call method_call = new get_type_call(name, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_type_call extends org.apache.thrift.async.TAsyncMethodCall<Type> {
      private java.lang.String name;
      public get_type_call(java.lang.String name, org.apache.thrift.async.AsyncMethodCallback<Type> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.name = name;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_type", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_type_args args = new get_type_args();
        args.setName(name);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Type getResult() throws MetaException, NoSuchObjectException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_type();
      }
    }

    public void create_type(Type type, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      create_type_call method_call = new create_type_call(type, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_type_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Boolean> {
      private Type type;
      public create_type_call(Type type, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.type = type;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("create_type", org.apache.thrift.protocol.TMessageType.CALL, 0));
        create_type_args args = new create_type_args();
        args.setType(type);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.lang.Boolean getResult() throws AlreadyExistsException, InvalidObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_create_type();
      }
    }

    public void drop_type(java.lang.String type, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      drop_type_call method_call = new drop_type_call(type, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_type_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Boolean> {
      private java.lang.String type;
      public drop_type_call(java.lang.String type, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.type = type;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("drop_type", org.apache.thrift.protocol.TMessageType.CALL, 0));
        drop_type_args args = new drop_type_args();
        args.setType(type);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.lang.Boolean getResult() throws MetaException, NoSuchObjectException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_drop_type();
      }
    }

    public void get_type_all(java.lang.String name, org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,Type>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_type_all_call method_call = new get_type_all_call(name, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_type_all_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.Map<java.lang.String,Type>> {
      private java.lang.String name;
      public get_type_all_call(java.lang.String name, org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,Type>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.name = name;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_type_all", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_type_all_args args = new get_type_all_args();
        args.setName(name);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.Map<java.lang.String,Type> getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_type_all();
      }
    }

    public void get_fields(java.lang.String db_name, java.lang.String table_name, org.apache.thrift.async.AsyncMethodCallback<java.util.List<FieldSchema>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_fields_call method_call = new get_fields_call(db_name, table_name, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_fields_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<FieldSchema>> {
      private java.lang.String db_name;
      private java.lang.String table_name;
      public get_fields_call(java.lang.String db_name, java.lang.String table_name, org.apache.thrift.async.AsyncMethodCallback<java.util.List<FieldSchema>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.table_name = table_name;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_fields", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_fields_args args = new get_fields_args();
        args.setDb_name(db_name);
        args.setTable_name(table_name);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.List<FieldSchema> getResult() throws MetaException, UnknownTableException, UnknownDBException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_fields();
      }
    }

    public void get_fields_with_environment_context(java.lang.String db_name, java.lang.String table_name, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<java.util.List<FieldSchema>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_fields_with_environment_context_call method_call = new get_fields_with_environment_context_call(db_name, table_name, environment_context, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_fields_with_environment_context_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<FieldSchema>> {
      private java.lang.String db_name;
      private java.lang.String table_name;
      private EnvironmentContext environment_context;
      public get_fields_with_environment_context_call(java.lang.String db_name, java.lang.String table_name, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<java.util.List<FieldSchema>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.table_name = table_name;
        this.environment_context = environment_context;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_fields_with_environment_context", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_fields_with_environment_context_args args = new get_fields_with_environment_context_args();
        args.setDb_name(db_name);
        args.setTable_name(table_name);
        args.setEnvironment_context(environment_context);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.List<FieldSchema> getResult() throws MetaException, UnknownTableException, UnknownDBException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_fields_with_environment_context();
      }
    }

    public void get_schema(java.lang.String db_name, java.lang.String table_name, org.apache.thrift.async.AsyncMethodCallback<java.util.List<FieldSchema>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_schema_call method_call = new get_schema_call(db_name, table_name, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_schema_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<FieldSchema>> {
      private java.lang.String db_name;
      private java.lang.String table_name;
      public get_schema_call(java.lang.String db_name, java.lang.String table_name, org.apache.thrift.async.AsyncMethodCallback<java.util.List<FieldSchema>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.table_name = table_name;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_schema", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_schema_args args = new get_schema_args();
        args.setDb_name(db_name);
        args.setTable_name(table_name);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.List<FieldSchema> getResult() throws MetaException, UnknownTableException, UnknownDBException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_schema();
      }
    }

    public void get_schema_with_environment_context(java.lang.String db_name, java.lang.String table_name, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<java.util.List<FieldSchema>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_schema_with_environment_context_call method_call = new get_schema_with_environment_context_call(db_name, table_name, environment_context, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_schema_with_environment_context_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<FieldSchema>> {
      private java.lang.String db_name;
      private java.lang.String table_name;
      private EnvironmentContext environment_context;
      public get_schema_with_environment_context_call(java.lang.String db_name, java.lang.String table_name, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<java.util.List<FieldSchema>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.table_name = table_name;
        this.environment_context = environment_context;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_schema_with_environment_context", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_schema_with_environment_context_args args = new get_schema_with_environment_context_args();
        args.setDb_name(db_name);
        args.setTable_name(table_name);
        args.setEnvironment_context(environment_context);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.List<FieldSchema> getResult() throws MetaException, UnknownTableException, UnknownDBException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_schema_with_environment_context();
      }
    }

    public void create_table(Table tbl, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      create_table_call method_call = new create_table_call(tbl, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_table_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private Table tbl;
      public create_table_call(Table tbl, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.tbl = tbl;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("create_table", org.apache.thrift.protocol.TMessageType.CALL, 0));
        create_table_args args = new create_table_args();
        args.setTbl(tbl);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws AlreadyExistsException, InvalidObjectException, MetaException, NoSuchObjectException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void create_table_with_environment_context(Table tbl, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      create_table_with_environment_context_call method_call = new create_table_with_environment_context_call(tbl, environment_context, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_table_with_environment_context_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private Table tbl;
      private EnvironmentContext environment_context;
      public create_table_with_environment_context_call(Table tbl, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.tbl = tbl;
        this.environment_context = environment_context;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("create_table_with_environment_context", org.apache.thrift.protocol.TMessageType.CALL, 0));
        create_table_with_environment_context_args args = new create_table_with_environment_context_args();
        args.setTbl(tbl);
        args.setEnvironment_context(environment_context);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws AlreadyExistsException, InvalidObjectException, MetaException, NoSuchObjectException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void create_table_with_constraints(Table tbl, java.util.List<SQLPrimaryKey> primaryKeys, java.util.List<SQLForeignKey> foreignKeys, java.util.List<SQLUniqueConstraint> uniqueConstraints, java.util.List<SQLNotNullConstraint> notNullConstraints, java.util.List<SQLDefaultConstraint> defaultConstraints, java.util.List<SQLCheckConstraint> checkConstraints, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      create_table_with_constraints_call method_call = new create_table_with_constraints_call(tbl, primaryKeys, foreignKeys, uniqueConstraints, notNullConstraints, defaultConstraints, checkConstraints, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_table_with_constraints_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private Table tbl;
      private java.util.List<SQLPrimaryKey> primaryKeys;
      private java.util.List<SQLForeignKey> foreignKeys;
      private java.util.List<SQLUniqueConstraint> uniqueConstraints;
      private java.util.List<SQLNotNullConstraint> notNullConstraints;
      private java.util.List<SQLDefaultConstraint> defaultConstraints;
      private java.util.List<SQLCheckConstraint> checkConstraints;
      public create_table_with_constraints_call(Table tbl, java.util.List<SQLPrimaryKey> primaryKeys, java.util.List<SQLForeignKey> foreignKeys, java.util.List<SQLUniqueConstraint> uniqueConstraints, java.util.List<SQLNotNullConstraint> notNullConstraints, java.util.List<SQLDefaultConstraint> defaultConstraints, java.util.List<SQLCheckConstraint> checkConstraints, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.tbl = tbl;
        this.primaryKeys = primaryKeys;
        this.foreignKeys = foreignKeys;
        this.uniqueConstraints = uniqueConstraints;
        this.notNullConstraints = notNullConstraints;
        this.defaultConstraints = defaultConstraints;
        this.checkConstraints = checkConstraints;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("create_table_with_constraints", org.apache.thrift.protocol.TMessageType.CALL, 0));
        create_table_with_constraints_args args = new create_table_with_constraints_args();
        args.setTbl(tbl);
        args.setPrimaryKeys(primaryKeys);
        args.setForeignKeys(foreignKeys);
        args.setUniqueConstraints(uniqueConstraints);
        args.setNotNullConstraints(notNullConstraints);
        args.setDefaultConstraints(defaultConstraints);
        args.setCheckConstraints(checkConstraints);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws AlreadyExistsException, InvalidObjectException, MetaException, NoSuchObjectException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void drop_constraint(DropConstraintRequest req, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      drop_constraint_call method_call = new drop_constraint_call(req, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_constraint_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private DropConstraintRequest req;
      public drop_constraint_call(DropConstraintRequest req, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.req = req;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("drop_constraint", org.apache.thrift.protocol.TMessageType.CALL, 0));
        drop_constraint_args args = new drop_constraint_args();
        args.setReq(req);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void add_primary_key(AddPrimaryKeyRequest req, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      add_primary_key_call method_call = new add_primary_key_call(req, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_primary_key_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private AddPrimaryKeyRequest req;
      public add_primary_key_call(AddPrimaryKeyRequest req, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.req = req;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("add_primary_key", org.apache.thrift.protocol.TMessageType.CALL, 0));
        add_primary_key_args args = new add_primary_key_args();
        args.setReq(req);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void add_foreign_key(AddForeignKeyRequest req, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      add_foreign_key_call method_call = new add_foreign_key_call(req, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_foreign_key_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private AddForeignKeyRequest req;
      public add_foreign_key_call(AddForeignKeyRequest req, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.req = req;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("add_foreign_key", org.apache.thrift.protocol.TMessageType.CALL, 0));
        add_foreign_key_args args = new add_foreign_key_args();
        args.setReq(req);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void add_unique_constraint(AddUniqueConstraintRequest req, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      add_unique_constraint_call method_call = new add_unique_constraint_call(req, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_unique_constraint_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private AddUniqueConstraintRequest req;
      public add_unique_constraint_call(AddUniqueConstraintRequest req, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.req = req;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("add_unique_constraint", org.apache.thrift.protocol.TMessageType.CALL, 0));
        add_unique_constraint_args args = new add_unique_constraint_args();
        args.setReq(req);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void add_not_null_constraint(AddNotNullConstraintRequest req, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      add_not_null_constraint_call method_call = new add_not_null_constraint_call(req, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_not_null_constraint_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private AddNotNullConstraintRequest req;
      public add_not_null_constraint_call(AddNotNullConstraintRequest req, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.req = req;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("add_not_null_constraint", org.apache.thrift.protocol.TMessageType.CALL, 0));
        add_not_null_constraint_args args = new add_not_null_constraint_args();
        args.setReq(req);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void add_default_constraint(AddDefaultConstraintRequest req, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      add_default_constraint_call method_call = new add_default_constraint_call(req, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_default_constraint_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private AddDefaultConstraintRequest req;
      public add_default_constraint_call(AddDefaultConstraintRequest req, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.req = req;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("add_default_constraint", org.apache.thrift.protocol.TMessageType.CALL, 0));
        add_default_constraint_args args = new add_default_constraint_args();
        args.setReq(req);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void add_check_constraint(AddCheckConstraintRequest req, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      add_check_constraint_call method_call = new add_check_constraint_call(req, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_check_constraint_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private AddCheckConstraintRequest req;
      public add_check_constraint_call(AddCheckConstraintRequest req, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.req = req;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("add_check_constraint", org.apache.thrift.protocol.TMessageType.CALL, 0));
        add_check_constraint_args args = new add_check_constraint_args();
        args.setReq(req);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void drop_table(java.lang.String dbname, java.lang.String name, boolean deleteData, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      drop_table_call method_call = new drop_table_call(dbname, name, deleteData, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_table_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private java.lang.String dbname;
      private java.lang.String name;
      private boolean deleteData;
      public drop_table_call(java.lang.String dbname, java.lang.String name, boolean deleteData, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.dbname = dbname;
        this.name = name;
        this.deleteData = deleteData;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("drop_table", org.apache.thrift.protocol.TMessageType.CALL, 0));
        drop_table_args args = new drop_table_args();
        args.setDbname(dbname);
        args.setName(name);
        args.setDeleteData(deleteData);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void drop_table_with_environment_context(java.lang.String dbname, java.lang.String name, boolean deleteData, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      drop_table_with_environment_context_call method_call = new drop_table_with_environment_context_call(dbname, name, deleteData, environment_context, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_table_with_environment_context_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private java.lang.String dbname;
      private java.lang.String name;
      private boolean deleteData;
      private EnvironmentContext environment_context;
      public drop_table_with_environment_context_call(java.lang.String dbname, java.lang.String name, boolean deleteData, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.dbname = dbname;
        this.name = name;
        this.deleteData = deleteData;
        this.environment_context = environment_context;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("drop_table_with_environment_context", org.apache.thrift.protocol.TMessageType.CALL, 0));
        drop_table_with_environment_context_args args = new drop_table_with_environment_context_args();
        args.setDbname(dbname);
        args.setName(name);
        args.setDeleteData(deleteData);
        args.setEnvironment_context(environment_context);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void truncate_table(java.lang.String dbName, java.lang.String tableName, java.util.List<java.lang.String> partNames, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      truncate_table_call method_call = new truncate_table_call(dbName, tableName, partNames, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class truncate_table_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private java.lang.String dbName;
      private java.lang.String tableName;
      private java.util.List<java.lang.String> partNames;
      public truncate_table_call(java.lang.String dbName, java.lang.String tableName, java.util.List<java.lang.String> partNames, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.dbName = dbName;
        this.tableName = tableName;
        this.partNames = partNames;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("truncate_table", org.apache.thrift.protocol.TMessageType.CALL, 0));
        truncate_table_args args = new truncate_table_args();
        args.setDbName(dbName);
        args.setTableName(tableName);
        args.setPartNames(partNames);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void get_tables(java.lang.String db_name, java.lang.String pattern, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_tables_call method_call = new get_tables_call(db_name, pattern, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_tables_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<java.lang.String>> {
      private java.lang.String db_name;
      private java.lang.String pattern;
      public get_tables_call(java.lang.String db_name, java.lang.String pattern, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.pattern = pattern;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_tables", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_tables_args args = new get_tables_args();
        args.setDb_name(db_name);
        args.setPattern(pattern);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.List<java.lang.String> getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_tables();
      }
    }

    public void get_tables_by_type(java.lang.String db_name, java.lang.String pattern, java.lang.String tableType, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_tables_by_type_call method_call = new get_tables_by_type_call(db_name, pattern, tableType, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_tables_by_type_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<java.lang.String>> {
      private java.lang.String db_name;
      private java.lang.String pattern;
      private java.lang.String tableType;
      public get_tables_by_type_call(java.lang.String db_name, java.lang.String pattern, java.lang.String tableType, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.pattern = pattern;
        this.tableType = tableType;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_tables_by_type", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_tables_by_type_args args = new get_tables_by_type_args();
        args.setDb_name(db_name);
        args.setPattern(pattern);
        args.setTableType(tableType);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.List<java.lang.String> getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_tables_by_type();
      }
    }

    public void get_materialized_views_for_rewriting(java.lang.String db_name, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_materialized_views_for_rewriting_call method_call = new get_materialized_views_for_rewriting_call(db_name, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_materialized_views_for_rewriting_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<java.lang.String>> {
      private java.lang.String db_name;
      public get_materialized_views_for_rewriting_call(java.lang.String db_name, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_materialized_views_for_rewriting", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_materialized_views_for_rewriting_args args = new get_materialized_views_for_rewriting_args();
        args.setDb_name(db_name);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.List<java.lang.String> getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_materialized_views_for_rewriting();
      }
    }

    public void get_table_meta(java.lang.String db_patterns, java.lang.String tbl_patterns, java.util.List<java.lang.String> tbl_types, org.apache.thrift.async.AsyncMethodCallback<java.util.List<TableMeta>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_table_meta_call method_call = new get_table_meta_call(db_patterns, tbl_patterns, tbl_types, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_meta_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<TableMeta>> {
      private java.lang.String db_patterns;
      private java.lang.String tbl_patterns;
      private java.util.List<java.lang.String> tbl_types;
      public get_table_meta_call(java.lang.String db_patterns, java.lang.String tbl_patterns, java.util.List<java.lang.String> tbl_types, org.apache.thrift.async.AsyncMethodCallback<java.util.List<TableMeta>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_patterns = db_patterns;
        this.tbl_patterns = tbl_patterns;
        this.tbl_types = tbl_types;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_table_meta", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_table_meta_args args = new get_table_meta_args();
        args.setDb_patterns(db_patterns);
        args.setTbl_patterns(tbl_patterns);
        args.setTbl_types(tbl_types);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.List<TableMeta> getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_table_meta();
      }
    }

    public void get_all_tables(java.lang.String db_name, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_all_tables_call method_call = new get_all_tables_call(db_name, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_all_tables_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<java.lang.String>> {
      private java.lang.String db_name;
      public get_all_tables_call(java.lang.String db_name, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_all_tables", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_all_tables_args args = new get_all_tables_args();
        args.setDb_name(db_name);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.List<java.lang.String> getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_all_tables();
      }
    }

    public void get_table(java.lang.String dbname, java.lang.String tbl_name, org.apache.thrift.async.AsyncMethodCallback<Table> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_table_call method_call = new get_table_call(dbname, tbl_name, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_call extends org.apache.thrift.async.TAsyncMethodCall<Table> {
      private java.lang.String dbname;
      private java.lang.String tbl_name;
      public get_table_call(java.lang.String dbname, java.lang.String tbl_name, org.apache.thrift.async.AsyncMethodCallback<Table> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.dbname = dbname;
        this.tbl_name = tbl_name;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_table", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_table_args args = new get_table_args();
        args.setDbname(dbname);
        args.setTbl_name(tbl_name);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Table getResult() throws MetaException, NoSuchObjectException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_table();
      }
    }

    public void get_table_objects_by_name(java.lang.String dbname, java.util.List<java.lang.String> tbl_names, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Table>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_table_objects_by_name_call method_call = new get_table_objects_by_name_call(dbname, tbl_names, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_objects_by_name_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<Table>> {
      private java.lang.String dbname;
      private java.util.List<java.lang.String> tbl_names;
      public get_table_objects_by_name_call(java.lang.String dbname, java.util.List<java.lang.String> tbl_names, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Table>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.dbname = dbname;
        this.tbl_names = tbl_names;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_table_objects_by_name", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_table_objects_by_name_args args = new get_table_objects_by_name_args();
        args.setDbname(dbname);
        args.setTbl_names(tbl_names);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.List<Table> getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_table_objects_by_name();
      }
    }

    public void get_table_req(GetTableRequest req, org.apache.thrift.async.AsyncMethodCallback<GetTableResult> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_table_req_call method_call = new get_table_req_call(req, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_req_call extends org.apache.thrift.async.TAsyncMethodCall<GetTableResult> {
      private GetTableRequest req;
      public get_table_req_call(GetTableRequest req, org.apache.thrift.async.AsyncMethodCallback<GetTableResult> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.req = req;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_table_req", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_table_req_args args = new get_table_req_args();
        args.setReq(req);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public GetTableResult getResult() throws MetaException, NoSuchObjectException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_table_req();
      }
    }

    public void get_table_objects_by_name_req(GetTablesRequest req, org.apache.thrift.async.AsyncMethodCallback<GetTablesResult> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_table_objects_by_name_req_call method_call = new get_table_objects_by_name_req_call(req, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_objects_by_name_req_call extends org.apache.thrift.async.TAsyncMethodCall<GetTablesResult> {
      private GetTablesRequest req;
      public get_table_objects_by_name_req_call(GetTablesRequest req, org.apache.thrift.async.AsyncMethodCallback<GetTablesResult> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.req = req;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_table_objects_by_name_req", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_table_objects_by_name_req_args args = new get_table_objects_by_name_req_args();
        args.setReq(req);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public GetTablesResult getResult() throws MetaException, InvalidOperationException, UnknownDBException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_table_objects_by_name_req();
      }
    }

    public void get_materialization_invalidation_info(CreationMetadata creation_metadata, java.lang.String validTxnList, org.apache.thrift.async.AsyncMethodCallback<Materialization> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_materialization_invalidation_info_call method_call = new get_materialization_invalidation_info_call(creation_metadata, validTxnList, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_materialization_invalidation_info_call extends org.apache.thrift.async.TAsyncMethodCall<Materialization> {
      private CreationMetadata creation_metadata;
      private java.lang.String validTxnList;
      public get_materialization_invalidation_info_call(CreationMetadata creation_metadata, java.lang.String validTxnList, org.apache.thrift.async.AsyncMethodCallback<Materialization> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.creation_metadata = creation_metadata;
        this.validTxnList = validTxnList;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_materialization_invalidation_info", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_materialization_invalidation_info_args args = new get_materialization_invalidation_info_args();
        args.setCreation_metadata(creation_metadata);
        args.setValidTxnList(validTxnList);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Materialization getResult() throws MetaException, InvalidOperationException, UnknownDBException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_materialization_invalidation_info();
      }
    }

    public void update_creation_metadata(java.lang.String catName, java.lang.String dbname, java.lang.String tbl_name, CreationMetadata creation_metadata, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      update_creation_metadata_call method_call = new update_creation_metadata_call(catName, dbname, tbl_name, creation_metadata, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class update_creation_metadata_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private java.lang.String catName;
      private java.lang.String dbname;
      private java.lang.String tbl_name;
      private CreationMetadata creation_metadata;
      public update_creation_metadata_call(java.lang.String catName, java.lang.String dbname, java.lang.String tbl_name, CreationMetadata creation_metadata, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.catName = catName;
        this.dbname = dbname;
        this.tbl_name = tbl_name;
        this.creation_metadata = creation_metadata;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("update_creation_metadata", org.apache.thrift.protocol.TMessageType.CALL, 0));
        update_creation_metadata_args args = new update_creation_metadata_args();
        args.setCatName(catName);
        args.setDbname(dbname);
        args.setTbl_name(tbl_name);
        args.setCreation_metadata(creation_metadata);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws MetaException, InvalidOperationException, UnknownDBException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void get_table_names_by_filter(java.lang.String dbname, java.lang.String filter, short max_tables, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_table_names_by_filter_call method_call = new get_table_names_by_filter_call(dbname, filter, max_tables, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_names_by_filter_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<java.lang.String>> {
      private java.lang.String dbname;
      private java.lang.String filter;
      private short max_tables;
      public get_table_names_by_filter_call(java.lang.String dbname, java.lang.String filter, short max_tables, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.dbname = dbname;
        this.filter = filter;
        this.max_tables = max_tables;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_table_names_by_filter", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_table_names_by_filter_args args = new get_table_names_by_filter_args();
        args.setDbname(dbname);
        args.setFilter(filter);
        args.setMax_tables(max_tables);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.List<java.lang.String> getResult() throws MetaException, InvalidOperationException, UnknownDBException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_table_names_by_filter();
      }
    }

    public void alter_table(java.lang.String dbname, java.lang.String tbl_name, Table new_tbl, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      alter_table_call method_call = new alter_table_call(dbname, tbl_name, new_tbl, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_table_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private java.lang.String dbname;
      private java.lang.String tbl_name;
      private Table new_tbl;
      public alter_table_call(java.lang.String dbname, java.lang.String tbl_name, Table new_tbl, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.dbname = dbname;
        this.tbl_name = tbl_name;
        this.new_tbl = new_tbl;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("alter_table", org.apache.thrift.protocol.TMessageType.CALL, 0));
        alter_table_args args = new alter_table_args();
        args.setDbname(dbname);
        args.setTbl_name(tbl_name);
        args.setNew_tbl(new_tbl);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws InvalidOperationException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void alter_table_with_environment_context(java.lang.String dbname, java.lang.String tbl_name, Table new_tbl, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      alter_table_with_environment_context_call method_call = new alter_table_with_environment_context_call(dbname, tbl_name, new_tbl, environment_context, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_table_with_environment_context_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private java.lang.String dbname;
      private java.lang.String tbl_name;
      private Table new_tbl;
      private EnvironmentContext environment_context;
      public alter_table_with_environment_context_call(java.lang.String dbname, java.lang.String tbl_name, Table new_tbl, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.dbname = dbname;
        this.tbl_name = tbl_name;
        this.new_tbl = new_tbl;
        this.environment_context = environment_context;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("alter_table_with_environment_context", org.apache.thrift.protocol.TMessageType.CALL, 0));
        alter_table_with_environment_context_args args = new alter_table_with_environment_context_args();
        args.setDbname(dbname);
        args.setTbl_name(tbl_name);
        args.setNew_tbl(new_tbl);
        args.setEnvironment_context(environment_context);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws InvalidOperationException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void alter_table_with_cascade(java.lang.String dbname, java.lang.String tbl_name, Table new_tbl, boolean cascade, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      alter_table_with_cascade_call method_call = new alter_table_with_cascade_call(dbname, tbl_name, new_tbl, cascade, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_table_with_cascade_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private java.lang.String dbname;
      private java.lang.String tbl_name;
      private Table new_tbl;
      private boolean cascade;
      public alter_table_with_cascade_call(java.lang.String dbname, java.lang.String tbl_name, Table new_tbl, boolean cascade, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.dbname = dbname;
        this.tbl_name = tbl_name;
        this.new_tbl = new_tbl;
        this.cascade = cascade;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("alter_table_with_cascade", org.apache.thrift.protocol.TMessageType.CALL, 0));
        alter_table_with_cascade_args args = new alter_table_with_cascade_args();
        args.setDbname(dbname);
        args.setTbl_name(tbl_name);
        args.setNew_tbl(new_tbl);
        args.setCascade(cascade);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws InvalidOperationException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void add_partition(Partition new_part, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      add_partition_call method_call = new add_partition_call(new_part, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_partition_call extends org.apache.thrift.async.TAsyncMethodCall<Partition> {
      private Partition new_part;
      public add_partition_call(Partition new_part, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.new_part = new_part;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("add_partition", org.apache.thrift.protocol.TMessageType.CALL, 0));
        add_partition_args args = new add_partition_args();
        args.setNew_part(new_part);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Partition getResult() throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_add_partition();
      }
    }

    public void add_partition_with_environment_context(Partition new_part, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      add_partition_with_environment_context_call method_call = new add_partition_with_environment_context_call(new_part, environment_context, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_partition_with_environment_context_call extends org.apache.thrift.async.TAsyncMethodCall<Partition> {
      private Partition new_part;
      private EnvironmentContext environment_context;
      public add_partition_with_environment_context_call(Partition new_part, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.new_part = new_part;
        this.environment_context = environment_context;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("add_partition_with_environment_context", org.apache.thrift.protocol.TMessageType.CALL, 0));
        add_partition_with_environment_context_args args = new add_partition_with_environment_context_args();
        args.setNew_part(new_part);
        args.setEnvironment_context(environment_context);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Partition getResult() throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_add_partition_with_environment_context();
      }
    }

    public void add_partitions(java.util.List<Partition> new_parts, org.apache.thrift.async.AsyncMethodCallback<java.lang.Integer> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      add_partitions_call method_call = new add_partitions_call(new_parts, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_partitions_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Integer> {
      private java.util.List<Partition> new_parts;
      public add_partitions_call(java.util.List<Partition> new_parts, org.apache.thrift.async.AsyncMethodCallback<java.lang.Integer> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.new_parts = new_parts;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("add_partitions", org.apache.thrift.protocol.TMessageType.CALL, 0));
        add_partitions_args args = new add_partitions_args();
        args.setNew_parts(new_parts);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.lang.Integer getResult() throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_add_partitions();
      }
    }

    public void add_partitions_pspec(java.util.List<PartitionSpec> new_parts, org.apache.thrift.async.AsyncMethodCallback<java.lang.Integer> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      add_partitions_pspec_call method_call = new add_partitions_pspec_call(new_parts, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_partitions_pspec_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Integer> {
      private java.util.List<PartitionSpec> new_parts;
      public add_partitions_pspec_call(java.util.List<PartitionSpec> new_parts, org.apache.thrift.async.AsyncMethodCallback<java.lang.Integer> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.new_parts = new_parts;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("add_partitions_pspec", org.apache.thrift.protocol.TMessageType.CALL, 0));
        add_partitions_pspec_args args = new add_partitions_pspec_args();
        args.setNew_parts(new_parts);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.lang.Integer getResult() throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_add_partitions_pspec();
      }
    }

    public void append_partition(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      append_partition_call method_call = new append_partition_call(db_name, tbl_name, part_vals, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class append_partition_call extends org.apache.thrift.async.TAsyncMethodCall<Partition> {
      private java.lang.String db_name;
      private java.lang.String tbl_name;
      private java.util.List<java.lang.String> part_vals;
      public append_partition_call(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.tbl_name = tbl_name;
        this.part_vals = part_vals;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("append_partition", org.apache.thrift.protocol.TMessageType.CALL, 0));
        append_partition_args args = new append_partition_args();
        args.setDb_name(db_name);
        args.setTbl_name(tbl_name);
        args.setPart_vals(part_vals);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Partition getResult() throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_append_partition();
      }
    }

    public void add_partitions_req(AddPartitionsRequest request, org.apache.thrift.async.AsyncMethodCallback<AddPartitionsResult> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      add_partitions_req_call method_call = new add_partitions_req_call(request, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_partitions_req_call extends org.apache.thrift.async.TAsyncMethodCall<AddPartitionsResult> {
      private AddPartitionsRequest request;
      public add_partitions_req_call(AddPartitionsRequest request, org.apache.thrift.async.AsyncMethodCallback<AddPartitionsResult> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("add_partitions_req", org.apache.thrift.protocol.TMessageType.CALL, 0));
        add_partitions_req_args args = new add_partitions_req_args();
        args.setRequest(request);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public AddPartitionsResult getResult() throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_add_partitions_req();
      }
    }

    public void append_partition_with_environment_context(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      append_partition_with_environment_context_call method_call = new append_partition_with_environment_context_call(db_name, tbl_name, part_vals, environment_context, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class append_partition_with_environment_context_call extends org.apache.thrift.async.TAsyncMethodCall<Partition> {
      private java.lang.String db_name;
      private java.lang.String tbl_name;
      private java.util.List<java.lang.String> part_vals;
      private EnvironmentContext environment_context;
      public append_partition_with_environment_context_call(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.tbl_name = tbl_name;
        this.part_vals = part_vals;
        this.environment_context = environment_context;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("append_partition_with_environment_context", org.apache.thrift.protocol.TMessageType.CALL, 0));
        append_partition_with_environment_context_args args = new append_partition_with_environment_context_args();
        args.setDb_name(db_name);
        args.setTbl_name(tbl_name);
        args.setPart_vals(part_vals);
        args.setEnvironment_context(environment_context);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Partition getResult() throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_append_partition_with_environment_context();
      }
    }

    public void append_partition_by_name(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      append_partition_by_name_call method_call = new append_partition_by_name_call(db_name, tbl_name, part_name, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class append_partition_by_name_call extends org.apache.thrift.async.TAsyncMethodCall<Partition> {
      private java.lang.String db_name;
      private java.lang.String tbl_name;
      private java.lang.String part_name;
      public append_partition_by_name_call(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.tbl_name = tbl_name;
        this.part_name = part_name;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("append_partition_by_name", org.apache.thrift.protocol.TMessageType.CALL, 0));
        append_partition_by_name_args args = new append_partition_by_name_args();
        args.setDb_name(db_name);
        args.setTbl_name(tbl_name);
        args.setPart_name(part_name);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Partition getResult() throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_append_partition_by_name();
      }
    }

    public void append_partition_by_name_with_environment_context(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      append_partition_by_name_with_environment_context_call method_call = new append_partition_by_name_with_environment_context_call(db_name, tbl_name, part_name, environment_context, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class append_partition_by_name_with_environment_context_call extends org.apache.thrift.async.TAsyncMethodCall<Partition> {
      private java.lang.String db_name;
      private java.lang.String tbl_name;
      private java.lang.String part_name;
      private EnvironmentContext environment_context;
      public append_partition_by_name_with_environment_context_call(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.tbl_name = tbl_name;
        this.part_name = part_name;
        this.environment_context = environment_context;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("append_partition_by_name_with_environment_context", org.apache.thrift.protocol.TMessageType.CALL, 0));
        append_partition_by_name_with_environment_context_args args = new append_partition_by_name_with_environment_context_args();
        args.setDb_name(db_name);
        args.setTbl_name(tbl_name);
        args.setPart_name(part_name);
        args.setEnvironment_context(environment_context);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Partition getResult() throws InvalidObjectException, AlreadyExistsException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_append_partition_by_name_with_environment_context();
      }
    }

    public void drop_partition(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, boolean deleteData, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      drop_partition_call method_call = new drop_partition_call(db_name, tbl_name, part_vals, deleteData, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_partition_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Boolean> {
      private java.lang.String db_name;
      private java.lang.String tbl_name;
      private java.util.List<java.lang.String> part_vals;
      private boolean deleteData;
      public drop_partition_call(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, boolean deleteData, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.tbl_name = tbl_name;
        this.part_vals = part_vals;
        this.deleteData = deleteData;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("drop_partition", org.apache.thrift.protocol.TMessageType.CALL, 0));
        drop_partition_args args = new drop_partition_args();
        args.setDb_name(db_name);
        args.setTbl_name(tbl_name);
        args.setPart_vals(part_vals);
        args.setDeleteData(deleteData);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.lang.Boolean getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_drop_partition();
      }
    }

    public void drop_partition_with_environment_context(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, boolean deleteData, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      drop_partition_with_environment_context_call method_call = new drop_partition_with_environment_context_call(db_name, tbl_name, part_vals, deleteData, environment_context, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_partition_with_environment_context_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Boolean> {
      private java.lang.String db_name;
      private java.lang.String tbl_name;
      private java.util.List<java.lang.String> part_vals;
      private boolean deleteData;
      private EnvironmentContext environment_context;
      public drop_partition_with_environment_context_call(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, boolean deleteData, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.tbl_name = tbl_name;
        this.part_vals = part_vals;
        this.deleteData = deleteData;
        this.environment_context = environment_context;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("drop_partition_with_environment_context", org.apache.thrift.protocol.TMessageType.CALL, 0));
        drop_partition_with_environment_context_args args = new drop_partition_with_environment_context_args();
        args.setDb_name(db_name);
        args.setTbl_name(tbl_name);
        args.setPart_vals(part_vals);
        args.setDeleteData(deleteData);
        args.setEnvironment_context(environment_context);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.lang.Boolean getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_drop_partition_with_environment_context();
      }
    }

    public void drop_partition_by_name(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, boolean deleteData, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      drop_partition_by_name_call method_call = new drop_partition_by_name_call(db_name, tbl_name, part_name, deleteData, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_partition_by_name_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Boolean> {
      private java.lang.String db_name;
      private java.lang.String tbl_name;
      private java.lang.String part_name;
      private boolean deleteData;
      public drop_partition_by_name_call(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, boolean deleteData, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.tbl_name = tbl_name;
        this.part_name = part_name;
        this.deleteData = deleteData;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("drop_partition_by_name", org.apache.thrift.protocol.TMessageType.CALL, 0));
        drop_partition_by_name_args args = new drop_partition_by_name_args();
        args.setDb_name(db_name);
        args.setTbl_name(tbl_name);
        args.setPart_name(part_name);
        args.setDeleteData(deleteData);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.lang.Boolean getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_drop_partition_by_name();
      }
    }

    public void drop_partition_by_name_with_environment_context(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, boolean deleteData, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      drop_partition_by_name_with_environment_context_call method_call = new drop_partition_by_name_with_environment_context_call(db_name, tbl_name, part_name, deleteData, environment_context, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_partition_by_name_with_environment_context_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Boolean> {
      private java.lang.String db_name;
      private java.lang.String tbl_name;
      private java.lang.String part_name;
      private boolean deleteData;
      private EnvironmentContext environment_context;
      public drop_partition_by_name_with_environment_context_call(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, boolean deleteData, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.tbl_name = tbl_name;
        this.part_name = part_name;
        this.deleteData = deleteData;
        this.environment_context = environment_context;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("drop_partition_by_name_with_environment_context", org.apache.thrift.protocol.TMessageType.CALL, 0));
        drop_partition_by_name_with_environment_context_args args = new drop_partition_by_name_with_environment_context_args();
        args.setDb_name(db_name);
        args.setTbl_name(tbl_name);
        args.setPart_name(part_name);
        args.setDeleteData(deleteData);
        args.setEnvironment_context(environment_context);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.lang.Boolean getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_drop_partition_by_name_with_environment_context();
      }
    }

    public void drop_partitions_req(DropPartitionsRequest req, org.apache.thrift.async.AsyncMethodCallback<DropPartitionsResult> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      drop_partitions_req_call method_call = new drop_partitions_req_call(req, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_partitions_req_call extends org.apache.thrift.async.TAsyncMethodCall<DropPartitionsResult> {
      private DropPartitionsRequest req;
      public drop_partitions_req_call(DropPartitionsRequest req, org.apache.thrift.async.AsyncMethodCallback<DropPartitionsResult> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.req = req;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("drop_partitions_req", org.apache.thrift.protocol.TMessageType.CALL, 0));
        drop_partitions_req_args args = new drop_partitions_req_args();
        args.setReq(req);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public DropPartitionsResult getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_drop_partitions_req();
      }
    }

    public void get_partition(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_partition_call method_call = new get_partition_call(db_name, tbl_name, part_vals, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition_call extends org.apache.thrift.async.TAsyncMethodCall<Partition> {
      private java.lang.String db_name;
      private java.lang.String tbl_name;
      private java.util.List<java.lang.String> part_vals;
      public get_partition_call(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.tbl_name = tbl_name;
        this.part_vals = part_vals;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_partition", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_partition_args args = new get_partition_args();
        args.setDb_name(db_name);
        args.setTbl_name(tbl_name);
        args.setPart_vals(part_vals);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Partition getResult() throws MetaException, NoSuchObjectException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_partition();
      }
    }

    public void exchange_partition(java.util.Map<java.lang.String,java.lang.String> partitionSpecs, java.lang.String source_db, java.lang.String source_table_name, java.lang.String dest_db, java.lang.String dest_table_name, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      exchange_partition_call method_call = new exchange_partition_call(partitionSpecs, source_db, source_table_name, dest_db, dest_table_name, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class exchange_partition_call extends org.apache.thrift.async.TAsyncMethodCall<Partition> {
      private java.util.Map<java.lang.String,java.lang.String> partitionSpecs;
      private java.lang.String source_db;
      private java.lang.String source_table_name;
      private java.lang.String dest_db;
      private java.lang.String dest_table_name;
      public exchange_partition_call(java.util.Map<java.lang.String,java.lang.String> partitionSpecs, java.lang.String source_db, java.lang.String source_table_name, java.lang.String dest_db, java.lang.String dest_table_name, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.partitionSpecs = partitionSpecs;
        this.source_db = source_db;
        this.source_table_name = source_table_name;
        this.dest_db = dest_db;
        this.dest_table_name = dest_table_name;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("exchange_partition", org.apache.thrift.protocol.TMessageType.CALL, 0));
        exchange_partition_args args = new exchange_partition_args();
        args.setPartitionSpecs(partitionSpecs);
        args.setSource_db(source_db);
        args.setSource_table_name(source_table_name);
        args.setDest_db(dest_db);
        args.setDest_table_name(dest_table_name);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Partition getResult() throws MetaException, NoSuchObjectException, InvalidObjectException, InvalidInputException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_exchange_partition();
      }
    }

    public void exchange_partitions(java.util.Map<java.lang.String,java.lang.String> partitionSpecs, java.lang.String source_db, java.lang.String source_table_name, java.lang.String dest_db, java.lang.String dest_table_name, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      exchange_partitions_call method_call = new exchange_partitions_call(partitionSpecs, source_db, source_table_name, dest_db, dest_table_name, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class exchange_partitions_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<Partition>> {
      private java.util.Map<java.lang.String,java.lang.String> partitionSpecs;
      private java.lang.String source_db;
      private java.lang.String source_table_name;
      private java.lang.String dest_db;
      private java.lang.String dest_table_name;
      public exchange_partitions_call(java.util.Map<java.lang.String,java.lang.String> partitionSpecs, java.lang.String source_db, java.lang.String source_table_name, java.lang.String dest_db, java.lang.String dest_table_name, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.partitionSpecs = partitionSpecs;
        this.source_db = source_db;
        this.source_table_name = source_table_name;
        this.dest_db = dest_db;
        this.dest_table_name = dest_table_name;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("exchange_partitions", org.apache.thrift.protocol.TMessageType.CALL, 0));
        exchange_partitions_args args = new exchange_partitions_args();
        args.setPartitionSpecs(partitionSpecs);
        args.setSource_db(source_db);
        args.setSource_table_name(source_table_name);
        args.setDest_db(dest_db);
        args.setDest_table_name(dest_table_name);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.List<Partition> getResult() throws MetaException, NoSuchObjectException, InvalidObjectException, InvalidInputException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_exchange_partitions();
      }
    }

    public void get_partition_with_auth(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, java.lang.String user_name, java.util.List<java.lang.String> group_names, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_partition_with_auth_call method_call = new get_partition_with_auth_call(db_name, tbl_name, part_vals, user_name, group_names, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition_with_auth_call extends org.apache.thrift.async.TAsyncMethodCall<Partition> {
      private java.lang.String db_name;
      private java.lang.String tbl_name;
      private java.util.List<java.lang.String> part_vals;
      private java.lang.String user_name;
      private java.util.List<java.lang.String> group_names;
      public get_partition_with_auth_call(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, java.lang.String user_name, java.util.List<java.lang.String> group_names, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.tbl_name = tbl_name;
        this.part_vals = part_vals;
        this.user_name = user_name;
        this.group_names = group_names;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_partition_with_auth", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_partition_with_auth_args args = new get_partition_with_auth_args();
        args.setDb_name(db_name);
        args.setTbl_name(tbl_name);
        args.setPart_vals(part_vals);
        args.setUser_name(user_name);
        args.setGroup_names(group_names);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Partition getResult() throws MetaException, NoSuchObjectException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_partition_with_auth();
      }
    }

    public void get_partition_by_name(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_partition_by_name_call method_call = new get_partition_by_name_call(db_name, tbl_name, part_name, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition_by_name_call extends org.apache.thrift.async.TAsyncMethodCall<Partition> {
      private java.lang.String db_name;
      private java.lang.String tbl_name;
      private java.lang.String part_name;
      public get_partition_by_name_call(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.tbl_name = tbl_name;
        this.part_name = part_name;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_partition_by_name", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_partition_by_name_args args = new get_partition_by_name_args();
        args.setDb_name(db_name);
        args.setTbl_name(tbl_name);
        args.setPart_name(part_name);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Partition getResult() throws MetaException, NoSuchObjectException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_partition_by_name();
      }
    }

    public void get_partitions(java.lang.String db_name, java.lang.String tbl_name, short max_parts, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_partitions_call method_call = new get_partitions_call(db_name, tbl_name, max_parts, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<Partition>> {
      private java.lang.String db_name;
      private java.lang.String tbl_name;
      private short max_parts;
      public get_partitions_call(java.lang.String db_name, java.lang.String tbl_name, short max_parts, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.tbl_name = tbl_name;
        this.max_parts = max_parts;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_partitions", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_partitions_args args = new get_partitions_args();
        args.setDb_name(db_name);
        args.setTbl_name(tbl_name);
        args.setMax_parts(max_parts);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.List<Partition> getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_partitions();
      }
    }

    public void get_partitions_with_auth(java.lang.String db_name, java.lang.String tbl_name, short max_parts, java.lang.String user_name, java.util.List<java.lang.String> group_names, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_partitions_with_auth_call method_call = new get_partitions_with_auth_call(db_name, tbl_name, max_parts, user_name, group_names, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_with_auth_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<Partition>> {
      private java.lang.String db_name;
      private java.lang.String tbl_name;
      private short max_parts;
      private java.lang.String user_name;
      private java.util.List<java.lang.String> group_names;
      public get_partitions_with_auth_call(java.lang.String db_name, java.lang.String tbl_name, short max_parts, java.lang.String user_name, java.util.List<java.lang.String> group_names, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.tbl_name = tbl_name;
        this.max_parts = max_parts;
        this.user_name = user_name;
        this.group_names = group_names;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_partitions_with_auth", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_partitions_with_auth_args args = new get_partitions_with_auth_args();
        args.setDb_name(db_name);
        args.setTbl_name(tbl_name);
        args.setMax_parts(max_parts);
        args.setUser_name(user_name);
        args.setGroup_names(group_names);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.List<Partition> getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_partitions_with_auth();
      }
    }

    public void get_partitions_pspec(java.lang.String db_name, java.lang.String tbl_name, int max_parts, org.apache.thrift.async.AsyncMethodCallback<java.util.List<PartitionSpec>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_partitions_pspec_call method_call = new get_partitions_pspec_call(db_name, tbl_name, max_parts, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_pspec_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<PartitionSpec>> {
      private java.lang.String db_name;
      private java.lang.String tbl_name;
      private int max_parts;
      public get_partitions_pspec_call(java.lang.String db_name, java.lang.String tbl_name, int max_parts, org.apache.thrift.async.AsyncMethodCallback<java.util.List<PartitionSpec>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.tbl_name = tbl_name;
        this.max_parts = max_parts;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_partitions_pspec", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_partitions_pspec_args args = new get_partitions_pspec_args();
        args.setDb_name(db_name);
        args.setTbl_name(tbl_name);
        args.setMax_parts(max_parts);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.List<PartitionSpec> getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_partitions_pspec();
      }
    }

    public void get_partition_names(java.lang.String db_name, java.lang.String tbl_name, short max_parts, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_partition_names_call method_call = new get_partition_names_call(db_name, tbl_name, max_parts, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition_names_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<java.lang.String>> {
      private java.lang.String db_name;
      private java.lang.String tbl_name;
      private short max_parts;
      public get_partition_names_call(java.lang.String db_name, java.lang.String tbl_name, short max_parts, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.tbl_name = tbl_name;
        this.max_parts = max_parts;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_partition_names", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_partition_names_args args = new get_partition_names_args();
        args.setDb_name(db_name);
        args.setTbl_name(tbl_name);
        args.setMax_parts(max_parts);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.List<java.lang.String> getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_partition_names();
      }
    }

    public void get_partition_values(PartitionValuesRequest request, org.apache.thrift.async.AsyncMethodCallback<PartitionValuesResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_partition_values_call method_call = new get_partition_values_call(request, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition_values_call extends org.apache.thrift.async.TAsyncMethodCall<PartitionValuesResponse> {
      private PartitionValuesRequest request;
      public get_partition_values_call(PartitionValuesRequest request, org.apache.thrift.async.AsyncMethodCallback<PartitionValuesResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_partition_values", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_partition_values_args args = new get_partition_values_args();
        args.setRequest(request);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public PartitionValuesResponse getResult() throws MetaException, NoSuchObjectException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_partition_values();
      }
    }

    public void get_partitions_ps(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, short max_parts, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_partitions_ps_call method_call = new get_partitions_ps_call(db_name, tbl_name, part_vals, max_parts, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_ps_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<Partition>> {
      private java.lang.String db_name;
      private java.lang.String tbl_name;
      private java.util.List<java.lang.String> part_vals;
      private short max_parts;
      public get_partitions_ps_call(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, short max_parts, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.tbl_name = tbl_name;
        this.part_vals = part_vals;
        this.max_parts = max_parts;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_partitions_ps", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_partitions_ps_args args = new get_partitions_ps_args();
        args.setDb_name(db_name);
        args.setTbl_name(tbl_name);
        args.setPart_vals(part_vals);
        args.setMax_parts(max_parts);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.List<Partition> getResult() throws MetaException, NoSuchObjectException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_partitions_ps();
      }
    }

    public void get_partitions_ps_with_auth(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, short max_parts, java.lang.String user_name, java.util.List<java.lang.String> group_names, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_partitions_ps_with_auth_call method_call = new get_partitions_ps_with_auth_call(db_name, tbl_name, part_vals, max_parts, user_name, group_names, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_ps_with_auth_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<Partition>> {
      private java.lang.String db_name;
      private java.lang.String tbl_name;
      private java.util.List<java.lang.String> part_vals;
      private short max_parts;
      private java.lang.String user_name;
      private java.util.List<java.lang.String> group_names;
      public get_partitions_ps_with_auth_call(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, short max_parts, java.lang.String user_name, java.util.List<java.lang.String> group_names, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.tbl_name = tbl_name;
        this.part_vals = part_vals;
        this.max_parts = max_parts;
        this.user_name = user_name;
        this.group_names = group_names;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_partitions_ps_with_auth", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_partitions_ps_with_auth_args args = new get_partitions_ps_with_auth_args();
        args.setDb_name(db_name);
        args.setTbl_name(tbl_name);
        args.setPart_vals(part_vals);
        args.setMax_parts(max_parts);
        args.setUser_name(user_name);
        args.setGroup_names(group_names);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.List<Partition> getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_partitions_ps_with_auth();
      }
    }

    public void get_partition_names_ps(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, short max_parts, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_partition_names_ps_call method_call = new get_partition_names_ps_call(db_name, tbl_name, part_vals, max_parts, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition_names_ps_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<java.lang.String>> {
      private java.lang.String db_name;
      private java.lang.String tbl_name;
      private java.util.List<java.lang.String> part_vals;
      private short max_parts;
      public get_partition_names_ps_call(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, short max_parts, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.tbl_name = tbl_name;
        this.part_vals = part_vals;
        this.max_parts = max_parts;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_partition_names_ps", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_partition_names_ps_args args = new get_partition_names_ps_args();
        args.setDb_name(db_name);
        args.setTbl_name(tbl_name);
        args.setPart_vals(part_vals);
        args.setMax_parts(max_parts);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.List<java.lang.String> getResult() throws MetaException, NoSuchObjectException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_partition_names_ps();
      }
    }

    public void get_partitions_by_filter(java.lang.String db_name, java.lang.String tbl_name, java.lang.String filter, short max_parts, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_partitions_by_filter_call method_call = new get_partitions_by_filter_call(db_name, tbl_name, filter, max_parts, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_by_filter_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<Partition>> {
      private java.lang.String db_name;
      private java.lang.String tbl_name;
      private java.lang.String filter;
      private short max_parts;
      public get_partitions_by_filter_call(java.lang.String db_name, java.lang.String tbl_name, java.lang.String filter, short max_parts, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.tbl_name = tbl_name;
        this.filter = filter;
        this.max_parts = max_parts;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_partitions_by_filter", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_partitions_by_filter_args args = new get_partitions_by_filter_args();
        args.setDb_name(db_name);
        args.setTbl_name(tbl_name);
        args.setFilter(filter);
        args.setMax_parts(max_parts);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.List<Partition> getResult() throws MetaException, NoSuchObjectException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_partitions_by_filter();
      }
    }

    public void get_part_specs_by_filter(java.lang.String db_name, java.lang.String tbl_name, java.lang.String filter, int max_parts, org.apache.thrift.async.AsyncMethodCallback<java.util.List<PartitionSpec>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_part_specs_by_filter_call method_call = new get_part_specs_by_filter_call(db_name, tbl_name, filter, max_parts, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_part_specs_by_filter_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<PartitionSpec>> {
      private java.lang.String db_name;
      private java.lang.String tbl_name;
      private java.lang.String filter;
      private int max_parts;
      public get_part_specs_by_filter_call(java.lang.String db_name, java.lang.String tbl_name, java.lang.String filter, int max_parts, org.apache.thrift.async.AsyncMethodCallback<java.util.List<PartitionSpec>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.tbl_name = tbl_name;
        this.filter = filter;
        this.max_parts = max_parts;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_part_specs_by_filter", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_part_specs_by_filter_args args = new get_part_specs_by_filter_args();
        args.setDb_name(db_name);
        args.setTbl_name(tbl_name);
        args.setFilter(filter);
        args.setMax_parts(max_parts);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.List<PartitionSpec> getResult() throws MetaException, NoSuchObjectException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_part_specs_by_filter();
      }
    }

    public void get_partitions_by_expr(PartitionsByExprRequest req, org.apache.thrift.async.AsyncMethodCallback<PartitionsByExprResult> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_partitions_by_expr_call method_call = new get_partitions_by_expr_call(req, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_by_expr_call extends org.apache.thrift.async.TAsyncMethodCall<PartitionsByExprResult> {
      private PartitionsByExprRequest req;
      public get_partitions_by_expr_call(PartitionsByExprRequest req, org.apache.thrift.async.AsyncMethodCallback<PartitionsByExprResult> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.req = req;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_partitions_by_expr", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_partitions_by_expr_args args = new get_partitions_by_expr_args();
        args.setReq(req);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public PartitionsByExprResult getResult() throws MetaException, NoSuchObjectException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_partitions_by_expr();
      }
    }

    public void get_num_partitions_by_filter(java.lang.String db_name, java.lang.String tbl_name, java.lang.String filter, org.apache.thrift.async.AsyncMethodCallback<java.lang.Integer> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_num_partitions_by_filter_call method_call = new get_num_partitions_by_filter_call(db_name, tbl_name, filter, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_num_partitions_by_filter_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Integer> {
      private java.lang.String db_name;
      private java.lang.String tbl_name;
      private java.lang.String filter;
      public get_num_partitions_by_filter_call(java.lang.String db_name, java.lang.String tbl_name, java.lang.String filter, org.apache.thrift.async.AsyncMethodCallback<java.lang.Integer> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.tbl_name = tbl_name;
        this.filter = filter;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_num_partitions_by_filter", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_num_partitions_by_filter_args args = new get_num_partitions_by_filter_args();
        args.setDb_name(db_name);
        args.setTbl_name(tbl_name);
        args.setFilter(filter);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.lang.Integer getResult() throws MetaException, NoSuchObjectException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_num_partitions_by_filter();
      }
    }

    public void get_partitions_by_names(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> names, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_partitions_by_names_call method_call = new get_partitions_by_names_call(db_name, tbl_name, names, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_by_names_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<Partition>> {
      private java.lang.String db_name;
      private java.lang.String tbl_name;
      private java.util.List<java.lang.String> names;
      public get_partitions_by_names_call(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> names, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.tbl_name = tbl_name;
        this.names = names;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_partitions_by_names", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_partitions_by_names_args args = new get_partitions_by_names_args();
        args.setDb_name(db_name);
        args.setTbl_name(tbl_name);
        args.setNames(names);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.List<Partition> getResult() throws MetaException, NoSuchObjectException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_partitions_by_names();
      }
    }

    public void alter_partition(java.lang.String db_name, java.lang.String tbl_name, Partition new_part, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      alter_partition_call method_call = new alter_partition_call(db_name, tbl_name, new_part, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_partition_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private java.lang.String db_name;
      private java.lang.String tbl_name;
      private Partition new_part;
      public alter_partition_call(java.lang.String db_name, java.lang.String tbl_name, Partition new_part, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.tbl_name = tbl_name;
        this.new_part = new_part;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("alter_partition", org.apache.thrift.protocol.TMessageType.CALL, 0));
        alter_partition_args args = new alter_partition_args();
        args.setDb_name(db_name);
        args.setTbl_name(tbl_name);
        args.setNew_part(new_part);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws InvalidOperationException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void alter_partitions(java.lang.String db_name, java.lang.String tbl_name, java.util.List<Partition> new_parts, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      alter_partitions_call method_call = new alter_partitions_call(db_name, tbl_name, new_parts, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_partitions_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private java.lang.String db_name;
      private java.lang.String tbl_name;
      private java.util.List<Partition> new_parts;
      public alter_partitions_call(java.lang.String db_name, java.lang.String tbl_name, java.util.List<Partition> new_parts, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.tbl_name = tbl_name;
        this.new_parts = new_parts;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("alter_partitions", org.apache.thrift.protocol.TMessageType.CALL, 0));
        alter_partitions_args args = new alter_partitions_args();
        args.setDb_name(db_name);
        args.setTbl_name(tbl_name);
        args.setNew_parts(new_parts);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws InvalidOperationException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void alter_partitions_with_environment_context(java.lang.String db_name, java.lang.String tbl_name, java.util.List<Partition> new_parts, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      alter_partitions_with_environment_context_call method_call = new alter_partitions_with_environment_context_call(db_name, tbl_name, new_parts, environment_context, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_partitions_with_environment_context_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private java.lang.String db_name;
      private java.lang.String tbl_name;
      private java.util.List<Partition> new_parts;
      private EnvironmentContext environment_context;
      public alter_partitions_with_environment_context_call(java.lang.String db_name, java.lang.String tbl_name, java.util.List<Partition> new_parts, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.tbl_name = tbl_name;
        this.new_parts = new_parts;
        this.environment_context = environment_context;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("alter_partitions_with_environment_context", org.apache.thrift.protocol.TMessageType.CALL, 0));
        alter_partitions_with_environment_context_args args = new alter_partitions_with_environment_context_args();
        args.setDb_name(db_name);
        args.setTbl_name(tbl_name);
        args.setNew_parts(new_parts);
        args.setEnvironment_context(environment_context);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws InvalidOperationException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void alter_partition_with_environment_context(java.lang.String db_name, java.lang.String tbl_name, Partition new_part, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      alter_partition_with_environment_context_call method_call = new alter_partition_with_environment_context_call(db_name, tbl_name, new_part, environment_context, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_partition_with_environment_context_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private java.lang.String db_name;
      private java.lang.String tbl_name;
      private Partition new_part;
      private EnvironmentContext environment_context;
      public alter_partition_with_environment_context_call(java.lang.String db_name, java.lang.String tbl_name, Partition new_part, EnvironmentContext environment_context, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.tbl_name = tbl_name;
        this.new_part = new_part;
        this.environment_context = environment_context;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("alter_partition_with_environment_context", org.apache.thrift.protocol.TMessageType.CALL, 0));
        alter_partition_with_environment_context_args args = new alter_partition_with_environment_context_args();
        args.setDb_name(db_name);
        args.setTbl_name(tbl_name);
        args.setNew_part(new_part);
        args.setEnvironment_context(environment_context);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws InvalidOperationException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void rename_partition(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, Partition new_part, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      rename_partition_call method_call = new rename_partition_call(db_name, tbl_name, part_vals, new_part, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class rename_partition_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private java.lang.String db_name;
      private java.lang.String tbl_name;
      private java.util.List<java.lang.String> part_vals;
      private Partition new_part;
      public rename_partition_call(java.lang.String db_name, java.lang.String tbl_name, java.util.List<java.lang.String> part_vals, Partition new_part, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.tbl_name = tbl_name;
        this.part_vals = part_vals;
        this.new_part = new_part;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("rename_partition", org.apache.thrift.protocol.TMessageType.CALL, 0));
        rename_partition_args args = new rename_partition_args();
        args.setDb_name(db_name);
        args.setTbl_name(tbl_name);
        args.setPart_vals(part_vals);
        args.setNew_part(new_part);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws InvalidOperationException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void partition_name_has_valid_characters(java.util.List<java.lang.String> part_vals, boolean throw_exception, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      partition_name_has_valid_characters_call method_call = new partition_name_has_valid_characters_call(part_vals, throw_exception, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class partition_name_has_valid_characters_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Boolean> {
      private java.util.List<java.lang.String> part_vals;
      private boolean throw_exception;
      public partition_name_has_valid_characters_call(java.util.List<java.lang.String> part_vals, boolean throw_exception, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.part_vals = part_vals;
        this.throw_exception = throw_exception;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("partition_name_has_valid_characters", org.apache.thrift.protocol.TMessageType.CALL, 0));
        partition_name_has_valid_characters_args args = new partition_name_has_valid_characters_args();
        args.setPart_vals(part_vals);
        args.setThrow_exception(throw_exception);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.lang.Boolean getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_partition_name_has_valid_characters();
      }
    }

    public void get_config_value(java.lang.String name, java.lang.String defaultValue, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_config_value_call method_call = new get_config_value_call(name, defaultValue, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_config_value_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.String> {
      private java.lang.String name;
      private java.lang.String defaultValue;
      public get_config_value_call(java.lang.String name, java.lang.String defaultValue, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.name = name;
        this.defaultValue = defaultValue;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_config_value", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_config_value_args args = new get_config_value_args();
        args.setName(name);
        args.setDefaultValue(defaultValue);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.lang.String getResult() throws ConfigValSecurityException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_config_value();
      }
    }

    public void partition_name_to_vals(java.lang.String part_name, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      partition_name_to_vals_call method_call = new partition_name_to_vals_call(part_name, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class partition_name_to_vals_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<java.lang.String>> {
      private java.lang.String part_name;
      public partition_name_to_vals_call(java.lang.String part_name, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.part_name = part_name;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("partition_name_to_vals", org.apache.thrift.protocol.TMessageType.CALL, 0));
        partition_name_to_vals_args args = new partition_name_to_vals_args();
        args.setPart_name(part_name);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.List<java.lang.String> getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_partition_name_to_vals();
      }
    }

    public void partition_name_to_spec(java.lang.String part_name, org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,java.lang.String>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      partition_name_to_spec_call method_call = new partition_name_to_spec_call(part_name, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class partition_name_to_spec_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.Map<java.lang.String,java.lang.String>> {
      private java.lang.String part_name;
      public partition_name_to_spec_call(java.lang.String part_name, org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,java.lang.String>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.part_name = part_name;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("partition_name_to_spec", org.apache.thrift.protocol.TMessageType.CALL, 0));
        partition_name_to_spec_args args = new partition_name_to_spec_args();
        args.setPart_name(part_name);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.Map<java.lang.String,java.lang.String> getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_partition_name_to_spec();
      }
    }

    public void markPartitionForEvent(java.lang.String db_name, java.lang.String tbl_name, java.util.Map<java.lang.String,java.lang.String> part_vals, PartitionEventType eventType, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      markPartitionForEvent_call method_call = new markPartitionForEvent_call(db_name, tbl_name, part_vals, eventType, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class markPartitionForEvent_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private java.lang.String db_name;
      private java.lang.String tbl_name;
      private java.util.Map<java.lang.String,java.lang.String> part_vals;
      private PartitionEventType eventType;
      public markPartitionForEvent_call(java.lang.String db_name, java.lang.String tbl_name, java.util.Map<java.lang.String,java.lang.String> part_vals, PartitionEventType eventType, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.tbl_name = tbl_name;
        this.part_vals = part_vals;
        this.eventType = eventType;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("markPartitionForEvent", org.apache.thrift.protocol.TMessageType.CALL, 0));
        markPartitionForEvent_args args = new markPartitionForEvent_args();
        args.setDb_name(db_name);
        args.setTbl_name(tbl_name);
        args.setPart_vals(part_vals);
        args.setEventType(eventType);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws MetaException, NoSuchObjectException, UnknownDBException, UnknownTableException, UnknownPartitionException, InvalidPartitionException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void isPartitionMarkedForEvent(java.lang.String db_name, java.lang.String tbl_name, java.util.Map<java.lang.String,java.lang.String> part_vals, PartitionEventType eventType, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      isPartitionMarkedForEvent_call method_call = new isPartitionMarkedForEvent_call(db_name, tbl_name, part_vals, eventType, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class isPartitionMarkedForEvent_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Boolean> {
      private java.lang.String db_name;
      private java.lang.String tbl_name;
      private java.util.Map<java.lang.String,java.lang.String> part_vals;
      private PartitionEventType eventType;
      public isPartitionMarkedForEvent_call(java.lang.String db_name, java.lang.String tbl_name, java.util.Map<java.lang.String,java.lang.String> part_vals, PartitionEventType eventType, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.tbl_name = tbl_name;
        this.part_vals = part_vals;
        this.eventType = eventType;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("isPartitionMarkedForEvent", org.apache.thrift.protocol.TMessageType.CALL, 0));
        isPartitionMarkedForEvent_args args = new isPartitionMarkedForEvent_args();
        args.setDb_name(db_name);
        args.setTbl_name(tbl_name);
        args.setPart_vals(part_vals);
        args.setEventType(eventType);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.lang.Boolean getResult() throws MetaException, NoSuchObjectException, UnknownDBException, UnknownTableException, UnknownPartitionException, InvalidPartitionException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_isPartitionMarkedForEvent();
      }
    }

    public void get_primary_keys(PrimaryKeysRequest request, org.apache.thrift.async.AsyncMethodCallback<PrimaryKeysResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_primary_keys_call method_call = new get_primary_keys_call(request, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_primary_keys_call extends org.apache.thrift.async.TAsyncMethodCall<PrimaryKeysResponse> {
      private PrimaryKeysRequest request;
      public get_primary_keys_call(PrimaryKeysRequest request, org.apache.thrift.async.AsyncMethodCallback<PrimaryKeysResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_primary_keys", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_primary_keys_args args = new get_primary_keys_args();
        args.setRequest(request);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public PrimaryKeysResponse getResult() throws MetaException, NoSuchObjectException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_primary_keys();
      }
    }

    public void get_foreign_keys(ForeignKeysRequest request, org.apache.thrift.async.AsyncMethodCallback<ForeignKeysResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_foreign_keys_call method_call = new get_foreign_keys_call(request, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_foreign_keys_call extends org.apache.thrift.async.TAsyncMethodCall<ForeignKeysResponse> {
      private ForeignKeysRequest request;
      public get_foreign_keys_call(ForeignKeysRequest request, org.apache.thrift.async.AsyncMethodCallback<ForeignKeysResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_foreign_keys", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_foreign_keys_args args = new get_foreign_keys_args();
        args.setRequest(request);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public ForeignKeysResponse getResult() throws MetaException, NoSuchObjectException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_foreign_keys();
      }
    }

    public void get_unique_constraints(UniqueConstraintsRequest request, org.apache.thrift.async.AsyncMethodCallback<UniqueConstraintsResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_unique_constraints_call method_call = new get_unique_constraints_call(request, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_unique_constraints_call extends org.apache.thrift.async.TAsyncMethodCall<UniqueConstraintsResponse> {
      private UniqueConstraintsRequest request;
      public get_unique_constraints_call(UniqueConstraintsRequest request, org.apache.thrift.async.AsyncMethodCallback<UniqueConstraintsResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_unique_constraints", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_unique_constraints_args args = new get_unique_constraints_args();
        args.setRequest(request);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public UniqueConstraintsResponse getResult() throws MetaException, NoSuchObjectException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_unique_constraints();
      }
    }

    public void get_not_null_constraints(NotNullConstraintsRequest request, org.apache.thrift.async.AsyncMethodCallback<NotNullConstraintsResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_not_null_constraints_call method_call = new get_not_null_constraints_call(request, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_not_null_constraints_call extends org.apache.thrift.async.TAsyncMethodCall<NotNullConstraintsResponse> {
      private NotNullConstraintsRequest request;
      public get_not_null_constraints_call(NotNullConstraintsRequest request, org.apache.thrift.async.AsyncMethodCallback<NotNullConstraintsResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_not_null_constraints", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_not_null_constraints_args args = new get_not_null_constraints_args();
        args.setRequest(request);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public NotNullConstraintsResponse getResult() throws MetaException, NoSuchObjectException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_not_null_constraints();
      }
    }

    public void get_default_constraints(DefaultConstraintsRequest request, org.apache.thrift.async.AsyncMethodCallback<DefaultConstraintsResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_default_constraints_call method_call = new get_default_constraints_call(request, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_default_constraints_call extends org.apache.thrift.async.TAsyncMethodCall<DefaultConstraintsResponse> {
      private DefaultConstraintsRequest request;
      public get_default_constraints_call(DefaultConstraintsRequest request, org.apache.thrift.async.AsyncMethodCallback<DefaultConstraintsResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_default_constraints", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_default_constraints_args args = new get_default_constraints_args();
        args.setRequest(request);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public DefaultConstraintsResponse getResult() throws MetaException, NoSuchObjectException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_default_constraints();
      }
    }

    public void get_check_constraints(CheckConstraintsRequest request, org.apache.thrift.async.AsyncMethodCallback<CheckConstraintsResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_check_constraints_call method_call = new get_check_constraints_call(request, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_check_constraints_call extends org.apache.thrift.async.TAsyncMethodCall<CheckConstraintsResponse> {
      private CheckConstraintsRequest request;
      public get_check_constraints_call(CheckConstraintsRequest request, org.apache.thrift.async.AsyncMethodCallback<CheckConstraintsResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_check_constraints", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_check_constraints_args args = new get_check_constraints_args();
        args.setRequest(request);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public CheckConstraintsResponse getResult() throws MetaException, NoSuchObjectException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_check_constraints();
      }
    }

    public void update_table_column_statistics(ColumnStatistics stats_obj, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      update_table_column_statistics_call method_call = new update_table_column_statistics_call(stats_obj, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class update_table_column_statistics_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Boolean> {
      private ColumnStatistics stats_obj;
      public update_table_column_statistics_call(ColumnStatistics stats_obj, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.stats_obj = stats_obj;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("update_table_column_statistics", org.apache.thrift.protocol.TMessageType.CALL, 0));
        update_table_column_statistics_args args = new update_table_column_statistics_args();
        args.setStats_obj(stats_obj);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.lang.Boolean getResult() throws NoSuchObjectException, InvalidObjectException, MetaException, InvalidInputException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_update_table_column_statistics();
      }
    }

    public void update_partition_column_statistics(ColumnStatistics stats_obj, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      update_partition_column_statistics_call method_call = new update_partition_column_statistics_call(stats_obj, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class update_partition_column_statistics_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Boolean> {
      private ColumnStatistics stats_obj;
      public update_partition_column_statistics_call(ColumnStatistics stats_obj, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.stats_obj = stats_obj;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("update_partition_column_statistics", org.apache.thrift.protocol.TMessageType.CALL, 0));
        update_partition_column_statistics_args args = new update_partition_column_statistics_args();
        args.setStats_obj(stats_obj);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.lang.Boolean getResult() throws NoSuchObjectException, InvalidObjectException, MetaException, InvalidInputException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_update_partition_column_statistics();
      }
    }

    public void get_table_column_statistics(java.lang.String db_name, java.lang.String tbl_name, java.lang.String col_name, org.apache.thrift.async.AsyncMethodCallback<ColumnStatistics> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_table_column_statistics_call method_call = new get_table_column_statistics_call(db_name, tbl_name, col_name, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_column_statistics_call extends org.apache.thrift.async.TAsyncMethodCall<ColumnStatistics> {
      private java.lang.String db_name;
      private java.lang.String tbl_name;
      private java.lang.String col_name;
      public get_table_column_statistics_call(java.lang.String db_name, java.lang.String tbl_name, java.lang.String col_name, org.apache.thrift.async.AsyncMethodCallback<ColumnStatistics> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.tbl_name = tbl_name;
        this.col_name = col_name;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_table_column_statistics", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_table_column_statistics_args args = new get_table_column_statistics_args();
        args.setDb_name(db_name);
        args.setTbl_name(tbl_name);
        args.setCol_name(col_name);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public ColumnStatistics getResult() throws NoSuchObjectException, MetaException, InvalidInputException, InvalidObjectException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_table_column_statistics();
      }
    }

    public void get_partition_column_statistics(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, java.lang.String col_name, org.apache.thrift.async.AsyncMethodCallback<ColumnStatistics> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_partition_column_statistics_call method_call = new get_partition_column_statistics_call(db_name, tbl_name, part_name, col_name, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition_column_statistics_call extends org.apache.thrift.async.TAsyncMethodCall<ColumnStatistics> {
      private java.lang.String db_name;
      private java.lang.String tbl_name;
      private java.lang.String part_name;
      private java.lang.String col_name;
      public get_partition_column_statistics_call(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, java.lang.String col_name, org.apache.thrift.async.AsyncMethodCallback<ColumnStatistics> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.tbl_name = tbl_name;
        this.part_name = part_name;
        this.col_name = col_name;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_partition_column_statistics", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_partition_column_statistics_args args = new get_partition_column_statistics_args();
        args.setDb_name(db_name);
        args.setTbl_name(tbl_name);
        args.setPart_name(part_name);
        args.setCol_name(col_name);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public ColumnStatistics getResult() throws NoSuchObjectException, MetaException, InvalidInputException, InvalidObjectException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_partition_column_statistics();
      }
    }

    public void get_table_statistics_req(TableStatsRequest request, org.apache.thrift.async.AsyncMethodCallback<TableStatsResult> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_table_statistics_req_call method_call = new get_table_statistics_req_call(request, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_statistics_req_call extends org.apache.thrift.async.TAsyncMethodCall<TableStatsResult> {
      private TableStatsRequest request;
      public get_table_statistics_req_call(TableStatsRequest request, org.apache.thrift.async.AsyncMethodCallback<TableStatsResult> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_table_statistics_req", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_table_statistics_req_args args = new get_table_statistics_req_args();
        args.setRequest(request);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public TableStatsResult getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_table_statistics_req();
      }
    }

    public void get_partitions_statistics_req(PartitionsStatsRequest request, org.apache.thrift.async.AsyncMethodCallback<PartitionsStatsResult> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_partitions_statistics_req_call method_call = new get_partitions_statistics_req_call(request, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_statistics_req_call extends org.apache.thrift.async.TAsyncMethodCall<PartitionsStatsResult> {
      private PartitionsStatsRequest request;
      public get_partitions_statistics_req_call(PartitionsStatsRequest request, org.apache.thrift.async.AsyncMethodCallback<PartitionsStatsResult> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_partitions_statistics_req", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_partitions_statistics_req_args args = new get_partitions_statistics_req_args();
        args.setRequest(request);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public PartitionsStatsResult getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_partitions_statistics_req();
      }
    }

    public void get_aggr_stats_for(PartitionsStatsRequest request, org.apache.thrift.async.AsyncMethodCallback<AggrStats> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_aggr_stats_for_call method_call = new get_aggr_stats_for_call(request, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_aggr_stats_for_call extends org.apache.thrift.async.TAsyncMethodCall<AggrStats> {
      private PartitionsStatsRequest request;
      public get_aggr_stats_for_call(PartitionsStatsRequest request, org.apache.thrift.async.AsyncMethodCallback<AggrStats> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_aggr_stats_for", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_aggr_stats_for_args args = new get_aggr_stats_for_args();
        args.setRequest(request);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public AggrStats getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_aggr_stats_for();
      }
    }

    public void set_aggr_stats_for(SetPartitionsStatsRequest request, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      set_aggr_stats_for_call method_call = new set_aggr_stats_for_call(request, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class set_aggr_stats_for_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Boolean> {
      private SetPartitionsStatsRequest request;
      public set_aggr_stats_for_call(SetPartitionsStatsRequest request, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("set_aggr_stats_for", org.apache.thrift.protocol.TMessageType.CALL, 0));
        set_aggr_stats_for_args args = new set_aggr_stats_for_args();
        args.setRequest(request);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.lang.Boolean getResult() throws NoSuchObjectException, InvalidObjectException, MetaException, InvalidInputException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_set_aggr_stats_for();
      }
    }

    public void delete_partition_column_statistics(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, java.lang.String col_name, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      delete_partition_column_statistics_call method_call = new delete_partition_column_statistics_call(db_name, tbl_name, part_name, col_name, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class delete_partition_column_statistics_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Boolean> {
      private java.lang.String db_name;
      private java.lang.String tbl_name;
      private java.lang.String part_name;
      private java.lang.String col_name;
      public delete_partition_column_statistics_call(java.lang.String db_name, java.lang.String tbl_name, java.lang.String part_name, java.lang.String col_name, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.tbl_name = tbl_name;
        this.part_name = part_name;
        this.col_name = col_name;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("delete_partition_column_statistics", org.apache.thrift.protocol.TMessageType.CALL, 0));
        delete_partition_column_statistics_args args = new delete_partition_column_statistics_args();
        args.setDb_name(db_name);
        args.setTbl_name(tbl_name);
        args.setPart_name(part_name);
        args.setCol_name(col_name);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.lang.Boolean getResult() throws NoSuchObjectException, MetaException, InvalidObjectException, InvalidInputException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_delete_partition_column_statistics();
      }
    }

    public void delete_table_column_statistics(java.lang.String db_name, java.lang.String tbl_name, java.lang.String col_name, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      delete_table_column_statistics_call method_call = new delete_table_column_statistics_call(db_name, tbl_name, col_name, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class delete_table_column_statistics_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Boolean> {
      private java.lang.String db_name;
      private java.lang.String tbl_name;
      private java.lang.String col_name;
      public delete_table_column_statistics_call(java.lang.String db_name, java.lang.String tbl_name, java.lang.String col_name, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.db_name = db_name;
        this.tbl_name = tbl_name;
        this.col_name = col_name;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("delete_table_column_statistics", org.apache.thrift.protocol.TMessageType.CALL, 0));
        delete_table_column_statistics_args args = new delete_table_column_statistics_args();
        args.setDb_name(db_name);
        args.setTbl_name(tbl_name);
        args.setCol_name(col_name);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.lang.Boolean getResult() throws NoSuchObjectException, MetaException, InvalidObjectException, InvalidInputException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_delete_table_column_statistics();
      }
    }

    public void create_function(Function func, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      create_function_call method_call = new create_function_call(func, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_function_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private Function func;
      public create_function_call(Function func, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.func = func;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("create_function", org.apache.thrift.protocol.TMessageType.CALL, 0));
        create_function_args args = new create_function_args();
        args.setFunc(func);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws AlreadyExistsException, InvalidObjectException, MetaException, NoSuchObjectException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void drop_function(java.lang.String dbName, java.lang.String funcName, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      drop_function_call method_call = new drop_function_call(dbName, funcName, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_function_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private java.lang.String dbName;
      private java.lang.String funcName;
      public drop_function_call(java.lang.String dbName, java.lang.String funcName, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.dbName = dbName;
        this.funcName = funcName;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("drop_function", org.apache.thrift.protocol.TMessageType.CALL, 0));
        drop_function_args args = new drop_function_args();
        args.setDbName(dbName);
        args.setFuncName(funcName);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void alter_function(java.lang.String dbName, java.lang.String funcName, Function newFunc, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      alter_function_call method_call = new alter_function_call(dbName, funcName, newFunc, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_function_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private java.lang.String dbName;
      private java.lang.String funcName;
      private Function newFunc;
      public alter_function_call(java.lang.String dbName, java.lang.String funcName, Function newFunc, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.dbName = dbName;
        this.funcName = funcName;
        this.newFunc = newFunc;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("alter_function", org.apache.thrift.protocol.TMessageType.CALL, 0));
        alter_function_args args = new alter_function_args();
        args.setDbName(dbName);
        args.setFuncName(funcName);
        args.setNewFunc(newFunc);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws InvalidOperationException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void get_functions(java.lang.String dbName, java.lang.String pattern, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_functions_call method_call = new get_functions_call(dbName, pattern, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_functions_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<java.lang.String>> {
      private java.lang.String dbName;
      private java.lang.String pattern;
      public get_functions_call(java.lang.String dbName, java.lang.String pattern, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.dbName = dbName;
        this.pattern = pattern;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_functions", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_functions_args args = new get_functions_args();
        args.setDbName(dbName);
        args.setPattern(pattern);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.List<java.lang.String> getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_functions();
      }
    }

    public void get_function(java.lang.String dbName, java.lang.String funcName, org.apache.thrift.async.AsyncMethodCallback<Function> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_function_call method_call = new get_function_call(dbName, funcName, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_function_call extends org.apache.thrift.async.TAsyncMethodCall<Function> {
      private java.lang.String dbName;
      private java.lang.String funcName;
      public get_function_call(java.lang.String dbName, java.lang.String funcName, org.apache.thrift.async.AsyncMethodCallback<Function> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.dbName = dbName;
        this.funcName = funcName;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_function", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_function_args args = new get_function_args();
        args.setDbName(dbName);
        args.setFuncName(funcName);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Function getResult() throws MetaException, NoSuchObjectException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_function();
      }
    }

    public void get_all_functions(org.apache.thrift.async.AsyncMethodCallback<GetAllFunctionsResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_all_functions_call method_call = new get_all_functions_call(resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_all_functions_call extends org.apache.thrift.async.TAsyncMethodCall<GetAllFunctionsResponse> {
      public get_all_functions_call(org.apache.thrift.async.AsyncMethodCallback<GetAllFunctionsResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_all_functions", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_all_functions_args args = new get_all_functions_args();
        args.write(prot);
        prot.writeMessageEnd();
      }

      public GetAllFunctionsResponse getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_all_functions();
      }
    }

    public void create_role(Role role, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      create_role_call method_call = new create_role_call(role, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_role_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Boolean> {
      private Role role;
      public create_role_call(Role role, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.role = role;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("create_role", org.apache.thrift.protocol.TMessageType.CALL, 0));
        create_role_args args = new create_role_args();
        args.setRole(role);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.lang.Boolean getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_create_role();
      }
    }

    public void drop_role(java.lang.String role_name, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      drop_role_call method_call = new drop_role_call(role_name, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_role_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Boolean> {
      private java.lang.String role_name;
      public drop_role_call(java.lang.String role_name, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.role_name = role_name;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("drop_role", org.apache.thrift.protocol.TMessageType.CALL, 0));
        drop_role_args args = new drop_role_args();
        args.setRole_name(role_name);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.lang.Boolean getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_drop_role();
      }
    }

    public void get_role_names(org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_role_names_call method_call = new get_role_names_call(resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_role_names_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<java.lang.String>> {
      public get_role_names_call(org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_role_names", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_role_names_args args = new get_role_names_args();
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.List<java.lang.String> getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_role_names();
      }
    }

    public void grant_role(java.lang.String role_name, java.lang.String principal_name, PrincipalType principal_type, java.lang.String grantor, PrincipalType grantorType, boolean grant_option, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      grant_role_call method_call = new grant_role_call(role_name, principal_name, principal_type, grantor, grantorType, grant_option, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class grant_role_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Boolean> {
      private java.lang.String role_name;
      private java.lang.String principal_name;
      private PrincipalType principal_type;
      private java.lang.String grantor;
      private PrincipalType grantorType;
      private boolean grant_option;
      public grant_role_call(java.lang.String role_name, java.lang.String principal_name, PrincipalType principal_type, java.lang.String grantor, PrincipalType grantorType, boolean grant_option, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.role_name = role_name;
        this.principal_name = principal_name;
        this.principal_type = principal_type;
        this.grantor = grantor;
        this.grantorType = grantorType;
        this.grant_option = grant_option;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("grant_role", org.apache.thrift.protocol.TMessageType.CALL, 0));
        grant_role_args args = new grant_role_args();
        args.setRole_name(role_name);
        args.setPrincipal_name(principal_name);
        args.setPrincipal_type(principal_type);
        args.setGrantor(grantor);
        args.setGrantorType(grantorType);
        args.setGrant_option(grant_option);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.lang.Boolean getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_grant_role();
      }
    }

    public void revoke_role(java.lang.String role_name, java.lang.String principal_name, PrincipalType principal_type, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      revoke_role_call method_call = new revoke_role_call(role_name, principal_name, principal_type, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class revoke_role_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Boolean> {
      private java.lang.String role_name;
      private java.lang.String principal_name;
      private PrincipalType principal_type;
      public revoke_role_call(java.lang.String role_name, java.lang.String principal_name, PrincipalType principal_type, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.role_name = role_name;
        this.principal_name = principal_name;
        this.principal_type = principal_type;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("revoke_role", org.apache.thrift.protocol.TMessageType.CALL, 0));
        revoke_role_args args = new revoke_role_args();
        args.setRole_name(role_name);
        args.setPrincipal_name(principal_name);
        args.setPrincipal_type(principal_type);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.lang.Boolean getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_revoke_role();
      }
    }

    public void list_roles(java.lang.String principal_name, PrincipalType principal_type, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Role>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      list_roles_call method_call = new list_roles_call(principal_name, principal_type, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class list_roles_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<Role>> {
      private java.lang.String principal_name;
      private PrincipalType principal_type;
      public list_roles_call(java.lang.String principal_name, PrincipalType principal_type, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Role>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.principal_name = principal_name;
        this.principal_type = principal_type;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("list_roles", org.apache.thrift.protocol.TMessageType.CALL, 0));
        list_roles_args args = new list_roles_args();
        args.setPrincipal_name(principal_name);
        args.setPrincipal_type(principal_type);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.List<Role> getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_list_roles();
      }
    }

    public void grant_revoke_role(GrantRevokeRoleRequest request, org.apache.thrift.async.AsyncMethodCallback<GrantRevokeRoleResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      grant_revoke_role_call method_call = new grant_revoke_role_call(request, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class grant_revoke_role_call extends org.apache.thrift.async.TAsyncMethodCall<GrantRevokeRoleResponse> {
      private GrantRevokeRoleRequest request;
      public grant_revoke_role_call(GrantRevokeRoleRequest request, org.apache.thrift.async.AsyncMethodCallback<GrantRevokeRoleResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("grant_revoke_role", org.apache.thrift.protocol.TMessageType.CALL, 0));
        grant_revoke_role_args args = new grant_revoke_role_args();
        args.setRequest(request);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public GrantRevokeRoleResponse getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_grant_revoke_role();
      }
    }

    public void get_principals_in_role(GetPrincipalsInRoleRequest request, org.apache.thrift.async.AsyncMethodCallback<GetPrincipalsInRoleResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_principals_in_role_call method_call = new get_principals_in_role_call(request, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_principals_in_role_call extends org.apache.thrift.async.TAsyncMethodCall<GetPrincipalsInRoleResponse> {
      private GetPrincipalsInRoleRequest request;
      public get_principals_in_role_call(GetPrincipalsInRoleRequest request, org.apache.thrift.async.AsyncMethodCallback<GetPrincipalsInRoleResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_principals_in_role", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_principals_in_role_args args = new get_principals_in_role_args();
        args.setRequest(request);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public GetPrincipalsInRoleResponse getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_principals_in_role();
      }
    }

    public void get_role_grants_for_principal(GetRoleGrantsForPrincipalRequest request, org.apache.thrift.async.AsyncMethodCallback<GetRoleGrantsForPrincipalResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_role_grants_for_principal_call method_call = new get_role_grants_for_principal_call(request, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_role_grants_for_principal_call extends org.apache.thrift.async.TAsyncMethodCall<GetRoleGrantsForPrincipalResponse> {
      private GetRoleGrantsForPrincipalRequest request;
      public get_role_grants_for_principal_call(GetRoleGrantsForPrincipalRequest request, org.apache.thrift.async.AsyncMethodCallback<GetRoleGrantsForPrincipalResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_role_grants_for_principal", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_role_grants_for_principal_args args = new get_role_grants_for_principal_args();
        args.setRequest(request);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public GetRoleGrantsForPrincipalResponse getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_role_grants_for_principal();
      }
    }

    public void get_privilege_set(HiveObjectRef hiveObject, java.lang.String user_name, java.util.List<java.lang.String> group_names, org.apache.thrift.async.AsyncMethodCallback<PrincipalPrivilegeSet> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_privilege_set_call method_call = new get_privilege_set_call(hiveObject, user_name, group_names, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_privilege_set_call extends org.apache.thrift.async.TAsyncMethodCall<PrincipalPrivilegeSet> {
      private HiveObjectRef hiveObject;
      private java.lang.String user_name;
      private java.util.List<java.lang.String> group_names;
      public get_privilege_set_call(HiveObjectRef hiveObject, java.lang.String user_name, java.util.List<java.lang.String> group_names, org.apache.thrift.async.AsyncMethodCallback<PrincipalPrivilegeSet> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.hiveObject = hiveObject;
        this.user_name = user_name;
        this.group_names = group_names;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_privilege_set", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_privilege_set_args args = new get_privilege_set_args();
        args.setHiveObject(hiveObject);
        args.setUser_name(user_name);
        args.setGroup_names(group_names);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public PrincipalPrivilegeSet getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_privilege_set();
      }
    }

    public void list_privileges(java.lang.String principal_name, PrincipalType principal_type, HiveObjectRef hiveObject, org.apache.thrift.async.AsyncMethodCallback<java.util.List<HiveObjectPrivilege>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      list_privileges_call method_call = new list_privileges_call(principal_name, principal_type, hiveObject, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class list_privileges_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<HiveObjectPrivilege>> {
      private java.lang.String principal_name;
      private PrincipalType principal_type;
      private HiveObjectRef hiveObject;
      public list_privileges_call(java.lang.String principal_name, PrincipalType principal_type, HiveObjectRef hiveObject, org.apache.thrift.async.AsyncMethodCallback<java.util.List<HiveObjectPrivilege>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.principal_name = principal_name;
        this.principal_type = principal_type;
        this.hiveObject = hiveObject;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("list_privileges", org.apache.thrift.protocol.TMessageType.CALL, 0));
        list_privileges_args args = new list_privileges_args();
        args.setPrincipal_name(principal_name);
        args.setPrincipal_type(principal_type);
        args.setHiveObject(hiveObject);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.List<HiveObjectPrivilege> getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_list_privileges();
      }
    }

    public void grant_privileges(PrivilegeBag privileges, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      grant_privileges_call method_call = new grant_privileges_call(privileges, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class grant_privileges_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Boolean> {
      private PrivilegeBag privileges;
      public grant_privileges_call(PrivilegeBag privileges, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.privileges = privileges;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("grant_privileges", org.apache.thrift.protocol.TMessageType.CALL, 0));
        grant_privileges_args args = new grant_privileges_args();
        args.setPrivileges(privileges);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.lang.Boolean getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_grant_privileges();
      }
    }

    public void revoke_privileges(PrivilegeBag privileges, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      revoke_privileges_call method_call = new revoke_privileges_call(privileges, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class revoke_privileges_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Boolean> {
      private PrivilegeBag privileges;
      public revoke_privileges_call(PrivilegeBag privileges, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.privileges = privileges;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("revoke_privileges", org.apache.thrift.protocol.TMessageType.CALL, 0));
        revoke_privileges_args args = new revoke_privileges_args();
        args.setPrivileges(privileges);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.lang.Boolean getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_revoke_privileges();
      }
    }

    public void grant_revoke_privileges(GrantRevokePrivilegeRequest request, org.apache.thrift.async.AsyncMethodCallback<GrantRevokePrivilegeResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      grant_revoke_privileges_call method_call = new grant_revoke_privileges_call(request, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class grant_revoke_privileges_call extends org.apache.thrift.async.TAsyncMethodCall<GrantRevokePrivilegeResponse> {
      private GrantRevokePrivilegeRequest request;
      public grant_revoke_privileges_call(GrantRevokePrivilegeRequest request, org.apache.thrift.async.AsyncMethodCallback<GrantRevokePrivilegeResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("grant_revoke_privileges", org.apache.thrift.protocol.TMessageType.CALL, 0));
        grant_revoke_privileges_args args = new grant_revoke_privileges_args();
        args.setRequest(request);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public GrantRevokePrivilegeResponse getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_grant_revoke_privileges();
      }
    }

    public void refresh_privileges(HiveObjectRef objToRefresh, java.lang.String authorizer, GrantRevokePrivilegeRequest grantRequest, org.apache.thrift.async.AsyncMethodCallback<GrantRevokePrivilegeResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      refresh_privileges_call method_call = new refresh_privileges_call(objToRefresh, authorizer, grantRequest, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class refresh_privileges_call extends org.apache.thrift.async.TAsyncMethodCall<GrantRevokePrivilegeResponse> {
      private HiveObjectRef objToRefresh;
      private java.lang.String authorizer;
      private GrantRevokePrivilegeRequest grantRequest;
      public refresh_privileges_call(HiveObjectRef objToRefresh, java.lang.String authorizer, GrantRevokePrivilegeRequest grantRequest, org.apache.thrift.async.AsyncMethodCallback<GrantRevokePrivilegeResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.objToRefresh = objToRefresh;
        this.authorizer = authorizer;
        this.grantRequest = grantRequest;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("refresh_privileges", org.apache.thrift.protocol.TMessageType.CALL, 0));
        refresh_privileges_args args = new refresh_privileges_args();
        args.setObjToRefresh(objToRefresh);
        args.setAuthorizer(authorizer);
        args.setGrantRequest(grantRequest);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public GrantRevokePrivilegeResponse getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_refresh_privileges();
      }
    }

    public void set_ugi(java.lang.String user_name, java.util.List<java.lang.String> group_names, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      set_ugi_call method_call = new set_ugi_call(user_name, group_names, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class set_ugi_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<java.lang.String>> {
      private java.lang.String user_name;
      private java.util.List<java.lang.String> group_names;
      public set_ugi_call(java.lang.String user_name, java.util.List<java.lang.String> group_names, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.user_name = user_name;
        this.group_names = group_names;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("set_ugi", org.apache.thrift.protocol.TMessageType.CALL, 0));
        set_ugi_args args = new set_ugi_args();
        args.setUser_name(user_name);
        args.setGroup_names(group_names);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.List<java.lang.String> getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_set_ugi();
      }
    }

    public void get_delegation_token(java.lang.String token_owner, java.lang.String renewer_kerberos_principal_name, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_delegation_token_call method_call = new get_delegation_token_call(token_owner, renewer_kerberos_principal_name, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_delegation_token_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.String> {
      private java.lang.String token_owner;
      private java.lang.String renewer_kerberos_principal_name;
      public get_delegation_token_call(java.lang.String token_owner, java.lang.String renewer_kerberos_principal_name, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.token_owner = token_owner;
        this.renewer_kerberos_principal_name = renewer_kerberos_principal_name;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_delegation_token", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_delegation_token_args args = new get_delegation_token_args();
        args.setToken_owner(token_owner);
        args.setRenewer_kerberos_principal_name(renewer_kerberos_principal_name);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.lang.String getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_delegation_token();
      }
    }

    public void renew_delegation_token(java.lang.String token_str_form, org.apache.thrift.async.AsyncMethodCallback<java.lang.Long> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      renew_delegation_token_call method_call = new renew_delegation_token_call(token_str_form, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class renew_delegation_token_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Long> {
      private java.lang.String token_str_form;
      public renew_delegation_token_call(java.lang.String token_str_form, org.apache.thrift.async.AsyncMethodCallback<java.lang.Long> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.token_str_form = token_str_form;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("renew_delegation_token", org.apache.thrift.protocol.TMessageType.CALL, 0));
        renew_delegation_token_args args = new renew_delegation_token_args();
        args.setToken_str_form(token_str_form);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.lang.Long getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_renew_delegation_token();
      }
    }

    public void cancel_delegation_token(java.lang.String token_str_form, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      cancel_delegation_token_call method_call = new cancel_delegation_token_call(token_str_form, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class cancel_delegation_token_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private java.lang.String token_str_form;
      public cancel_delegation_token_call(java.lang.String token_str_form, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.token_str_form = token_str_form;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("cancel_delegation_token", org.apache.thrift.protocol.TMessageType.CALL, 0));
        cancel_delegation_token_args args = new cancel_delegation_token_args();
        args.setToken_str_form(token_str_form);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void add_token(java.lang.String token_identifier, java.lang.String delegation_token, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      add_token_call method_call = new add_token_call(token_identifier, delegation_token, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_token_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Boolean> {
      private java.lang.String token_identifier;
      private java.lang.String delegation_token;
      public add_token_call(java.lang.String token_identifier, java.lang.String delegation_token, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.token_identifier = token_identifier;
        this.delegation_token = delegation_token;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("add_token", org.apache.thrift.protocol.TMessageType.CALL, 0));
        add_token_args args = new add_token_args();
        args.setToken_identifier(token_identifier);
        args.setDelegation_token(delegation_token);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.lang.Boolean getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_add_token();
      }
    }

    public void remove_token(java.lang.String token_identifier, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      remove_token_call method_call = new remove_token_call(token_identifier, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class remove_token_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Boolean> {
      private java.lang.String token_identifier;
      public remove_token_call(java.lang.String token_identifier, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.token_identifier = token_identifier;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("remove_token", org.apache.thrift.protocol.TMessageType.CALL, 0));
        remove_token_args args = new remove_token_args();
        args.setToken_identifier(token_identifier);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.lang.Boolean getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_remove_token();
      }
    }

    public void get_token(java.lang.String token_identifier, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_token_call method_call = new get_token_call(token_identifier, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_token_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.String> {
      private java.lang.String token_identifier;
      public get_token_call(java.lang.String token_identifier, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.token_identifier = token_identifier;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_token", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_token_args args = new get_token_args();
        args.setToken_identifier(token_identifier);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.lang.String getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_token();
      }
    }

    public void get_all_token_identifiers(org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_all_token_identifiers_call method_call = new get_all_token_identifiers_call(resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_all_token_identifiers_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<java.lang.String>> {
      public get_all_token_identifiers_call(org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_all_token_identifiers", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_all_token_identifiers_args args = new get_all_token_identifiers_args();
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.List<java.lang.String> getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_all_token_identifiers();
      }
    }

    public void add_master_key(java.lang.String key, org.apache.thrift.async.AsyncMethodCallback<java.lang.Integer> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      add_master_key_call method_call = new add_master_key_call(key, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_master_key_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Integer> {
      private java.lang.String key;
      public add_master_key_call(java.lang.String key, org.apache.thrift.async.AsyncMethodCallback<java.lang.Integer> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.key = key;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("add_master_key", org.apache.thrift.protocol.TMessageType.CALL, 0));
        add_master_key_args args = new add_master_key_args();
        args.setKey(key);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.lang.Integer getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_add_master_key();
      }
    }

    public void update_master_key(int seq_number, java.lang.String key, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      update_master_key_call method_call = new update_master_key_call(seq_number, key, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class update_master_key_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private int seq_number;
      private java.lang.String key;
      public update_master_key_call(int seq_number, java.lang.String key, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.seq_number = seq_number;
        this.key = key;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("update_master_key", org.apache.thrift.protocol.TMessageType.CALL, 0));
        update_master_key_args args = new update_master_key_args();
        args.setSeq_number(seq_number);
        args.setKey(key);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void remove_master_key(int key_seq, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      remove_master_key_call method_call = new remove_master_key_call(key_seq, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class remove_master_key_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Boolean> {
      private int key_seq;
      public remove_master_key_call(int key_seq, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.key_seq = key_seq;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("remove_master_key", org.apache.thrift.protocol.TMessageType.CALL, 0));
        remove_master_key_args args = new remove_master_key_args();
        args.setKey_seq(key_seq);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.lang.Boolean getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_remove_master_key();
      }
    }

    public void get_master_keys(org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_master_keys_call method_call = new get_master_keys_call(resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_master_keys_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<java.lang.String>> {
      public get_master_keys_call(org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_master_keys", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_master_keys_args args = new get_master_keys_args();
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.List<java.lang.String> getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_master_keys();
      }
    }

    public void get_open_txns(org.apache.thrift.async.AsyncMethodCallback<GetOpenTxnsResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_open_txns_call method_call = new get_open_txns_call(resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_open_txns_call extends org.apache.thrift.async.TAsyncMethodCall<GetOpenTxnsResponse> {
      public get_open_txns_call(org.apache.thrift.async.AsyncMethodCallback<GetOpenTxnsResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_open_txns", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_open_txns_args args = new get_open_txns_args();
        args.write(prot);
        prot.writeMessageEnd();
      }

      public GetOpenTxnsResponse getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_open_txns();
      }
    }

    public void get_open_txns_info(org.apache.thrift.async.AsyncMethodCallback<GetOpenTxnsInfoResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_open_txns_info_call method_call = new get_open_txns_info_call(resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_open_txns_info_call extends org.apache.thrift.async.TAsyncMethodCall<GetOpenTxnsInfoResponse> {
      public get_open_txns_info_call(org.apache.thrift.async.AsyncMethodCallback<GetOpenTxnsInfoResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_open_txns_info", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_open_txns_info_args args = new get_open_txns_info_args();
        args.write(prot);
        prot.writeMessageEnd();
      }

      public GetOpenTxnsInfoResponse getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_open_txns_info();
      }
    }

    public void open_txns(OpenTxnRequest rqst, org.apache.thrift.async.AsyncMethodCallback<OpenTxnsResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      open_txns_call method_call = new open_txns_call(rqst, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class open_txns_call extends org.apache.thrift.async.TAsyncMethodCall<OpenTxnsResponse> {
      private OpenTxnRequest rqst;
      public open_txns_call(OpenTxnRequest rqst, org.apache.thrift.async.AsyncMethodCallback<OpenTxnsResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.rqst = rqst;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("open_txns", org.apache.thrift.protocol.TMessageType.CALL, 0));
        open_txns_args args = new open_txns_args();
        args.setRqst(rqst);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public OpenTxnsResponse getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_open_txns();
      }
    }

    public void abort_txn(AbortTxnRequest rqst, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      abort_txn_call method_call = new abort_txn_call(rqst, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class abort_txn_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private AbortTxnRequest rqst;
      public abort_txn_call(AbortTxnRequest rqst, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.rqst = rqst;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("abort_txn", org.apache.thrift.protocol.TMessageType.CALL, 0));
        abort_txn_args args = new abort_txn_args();
        args.setRqst(rqst);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws NoSuchTxnException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void abort_txns(AbortTxnsRequest rqst, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      abort_txns_call method_call = new abort_txns_call(rqst, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class abort_txns_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private AbortTxnsRequest rqst;
      public abort_txns_call(AbortTxnsRequest rqst, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.rqst = rqst;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("abort_txns", org.apache.thrift.protocol.TMessageType.CALL, 0));
        abort_txns_args args = new abort_txns_args();
        args.setRqst(rqst);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws NoSuchTxnException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void commit_txn(CommitTxnRequest rqst, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      commit_txn_call method_call = new commit_txn_call(rqst, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class commit_txn_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private CommitTxnRequest rqst;
      public commit_txn_call(CommitTxnRequest rqst, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.rqst = rqst;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("commit_txn", org.apache.thrift.protocol.TMessageType.CALL, 0));
        commit_txn_args args = new commit_txn_args();
        args.setRqst(rqst);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws NoSuchTxnException, TxnAbortedException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void repl_tbl_writeid_state(ReplTblWriteIdStateRequest rqst, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      repl_tbl_writeid_state_call method_call = new repl_tbl_writeid_state_call(rqst, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class repl_tbl_writeid_state_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private ReplTblWriteIdStateRequest rqst;
      public repl_tbl_writeid_state_call(ReplTblWriteIdStateRequest rqst, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.rqst = rqst;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("repl_tbl_writeid_state", org.apache.thrift.protocol.TMessageType.CALL, 0));
        repl_tbl_writeid_state_args args = new repl_tbl_writeid_state_args();
        args.setRqst(rqst);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void get_valid_write_ids(GetValidWriteIdsRequest rqst, org.apache.thrift.async.AsyncMethodCallback<GetValidWriteIdsResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_valid_write_ids_call method_call = new get_valid_write_ids_call(rqst, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_valid_write_ids_call extends org.apache.thrift.async.TAsyncMethodCall<GetValidWriteIdsResponse> {
      private GetValidWriteIdsRequest rqst;
      public get_valid_write_ids_call(GetValidWriteIdsRequest rqst, org.apache.thrift.async.AsyncMethodCallback<GetValidWriteIdsResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.rqst = rqst;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_valid_write_ids", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_valid_write_ids_args args = new get_valid_write_ids_args();
        args.setRqst(rqst);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public GetValidWriteIdsResponse getResult() throws NoSuchTxnException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_valid_write_ids();
      }
    }

    public void allocate_table_write_ids(AllocateTableWriteIdsRequest rqst, org.apache.thrift.async.AsyncMethodCallback<AllocateTableWriteIdsResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      allocate_table_write_ids_call method_call = new allocate_table_write_ids_call(rqst, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class allocate_table_write_ids_call extends org.apache.thrift.async.TAsyncMethodCall<AllocateTableWriteIdsResponse> {
      private AllocateTableWriteIdsRequest rqst;
      public allocate_table_write_ids_call(AllocateTableWriteIdsRequest rqst, org.apache.thrift.async.AsyncMethodCallback<AllocateTableWriteIdsResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.rqst = rqst;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("allocate_table_write_ids", org.apache.thrift.protocol.TMessageType.CALL, 0));
        allocate_table_write_ids_args args = new allocate_table_write_ids_args();
        args.setRqst(rqst);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public AllocateTableWriteIdsResponse getResult() throws NoSuchTxnException, TxnAbortedException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_allocate_table_write_ids();
      }
    }

    public void lock(LockRequest rqst, org.apache.thrift.async.AsyncMethodCallback<LockResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      lock_call method_call = new lock_call(rqst, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class lock_call extends org.apache.thrift.async.TAsyncMethodCall<LockResponse> {
      private LockRequest rqst;
      public lock_call(LockRequest rqst, org.apache.thrift.async.AsyncMethodCallback<LockResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.rqst = rqst;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("lock", org.apache.thrift.protocol.TMessageType.CALL, 0));
        lock_args args = new lock_args();
        args.setRqst(rqst);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public LockResponse getResult() throws NoSuchTxnException, TxnAbortedException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_lock();
      }
    }

    public void check_lock(CheckLockRequest rqst, org.apache.thrift.async.AsyncMethodCallback<LockResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      check_lock_call method_call = new check_lock_call(rqst, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class check_lock_call extends org.apache.thrift.async.TAsyncMethodCall<LockResponse> {
      private CheckLockRequest rqst;
      public check_lock_call(CheckLockRequest rqst, org.apache.thrift.async.AsyncMethodCallback<LockResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.rqst = rqst;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("check_lock", org.apache.thrift.protocol.TMessageType.CALL, 0));
        check_lock_args args = new check_lock_args();
        args.setRqst(rqst);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public LockResponse getResult() throws NoSuchTxnException, TxnAbortedException, NoSuchLockException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_check_lock();
      }
    }

    public void unlock(UnlockRequest rqst, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      unlock_call method_call = new unlock_call(rqst, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class unlock_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private UnlockRequest rqst;
      public unlock_call(UnlockRequest rqst, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.rqst = rqst;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("unlock", org.apache.thrift.protocol.TMessageType.CALL, 0));
        unlock_args args = new unlock_args();
        args.setRqst(rqst);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws NoSuchLockException, TxnOpenException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void show_locks(ShowLocksRequest rqst, org.apache.thrift.async.AsyncMethodCallback<ShowLocksResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      show_locks_call method_call = new show_locks_call(rqst, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class show_locks_call extends org.apache.thrift.async.TAsyncMethodCall<ShowLocksResponse> {
      private ShowLocksRequest rqst;
      public show_locks_call(ShowLocksRequest rqst, org.apache.thrift.async.AsyncMethodCallback<ShowLocksResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.rqst = rqst;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("show_locks", org.apache.thrift.protocol.TMessageType.CALL, 0));
        show_locks_args args = new show_locks_args();
        args.setRqst(rqst);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public ShowLocksResponse getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_show_locks();
      }
    }

    public void heartbeat(HeartbeatRequest ids, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      heartbeat_call method_call = new heartbeat_call(ids, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class heartbeat_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private HeartbeatRequest ids;
      public heartbeat_call(HeartbeatRequest ids, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.ids = ids;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("heartbeat", org.apache.thrift.protocol.TMessageType.CALL, 0));
        heartbeat_args args = new heartbeat_args();
        args.setIds(ids);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws NoSuchLockException, NoSuchTxnException, TxnAbortedException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void heartbeat_txn_range(HeartbeatTxnRangeRequest txns, org.apache.thrift.async.AsyncMethodCallback<HeartbeatTxnRangeResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      heartbeat_txn_range_call method_call = new heartbeat_txn_range_call(txns, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class heartbeat_txn_range_call extends org.apache.thrift.async.TAsyncMethodCall<HeartbeatTxnRangeResponse> {
      private HeartbeatTxnRangeRequest txns;
      public heartbeat_txn_range_call(HeartbeatTxnRangeRequest txns, org.apache.thrift.async.AsyncMethodCallback<HeartbeatTxnRangeResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.txns = txns;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("heartbeat_txn_range", org.apache.thrift.protocol.TMessageType.CALL, 0));
        heartbeat_txn_range_args args = new heartbeat_txn_range_args();
        args.setTxns(txns);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public HeartbeatTxnRangeResponse getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_heartbeat_txn_range();
      }
    }

    public void compact(CompactionRequest rqst, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      compact_call method_call = new compact_call(rqst, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class compact_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private CompactionRequest rqst;
      public compact_call(CompactionRequest rqst, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.rqst = rqst;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("compact", org.apache.thrift.protocol.TMessageType.CALL, 0));
        compact_args args = new compact_args();
        args.setRqst(rqst);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void compact2(CompactionRequest rqst, org.apache.thrift.async.AsyncMethodCallback<CompactionResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      compact2_call method_call = new compact2_call(rqst, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class compact2_call extends org.apache.thrift.async.TAsyncMethodCall<CompactionResponse> {
      private CompactionRequest rqst;
      public compact2_call(CompactionRequest rqst, org.apache.thrift.async.AsyncMethodCallback<CompactionResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.rqst = rqst;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("compact2", org.apache.thrift.protocol.TMessageType.CALL, 0));
        compact2_args args = new compact2_args();
        args.setRqst(rqst);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public CompactionResponse getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_compact2();
      }
    }

    public void show_compact(ShowCompactRequest rqst, org.apache.thrift.async.AsyncMethodCallback<ShowCompactResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      show_compact_call method_call = new show_compact_call(rqst, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class show_compact_call extends org.apache.thrift.async.TAsyncMethodCall<ShowCompactResponse> {
      private ShowCompactRequest rqst;
      public show_compact_call(ShowCompactRequest rqst, org.apache.thrift.async.AsyncMethodCallback<ShowCompactResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.rqst = rqst;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("show_compact", org.apache.thrift.protocol.TMessageType.CALL, 0));
        show_compact_args args = new show_compact_args();
        args.setRqst(rqst);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public ShowCompactResponse getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_show_compact();
      }
    }

    public void add_dynamic_partitions(AddDynamicPartitions rqst, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      add_dynamic_partitions_call method_call = new add_dynamic_partitions_call(rqst, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_dynamic_partitions_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private AddDynamicPartitions rqst;
      public add_dynamic_partitions_call(AddDynamicPartitions rqst, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.rqst = rqst;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("add_dynamic_partitions", org.apache.thrift.protocol.TMessageType.CALL, 0));
        add_dynamic_partitions_args args = new add_dynamic_partitions_args();
        args.setRqst(rqst);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws NoSuchTxnException, TxnAbortedException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void get_next_notification(NotificationEventRequest rqst, org.apache.thrift.async.AsyncMethodCallback<NotificationEventResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_next_notification_call method_call = new get_next_notification_call(rqst, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_next_notification_call extends org.apache.thrift.async.TAsyncMethodCall<NotificationEventResponse> {
      private NotificationEventRequest rqst;
      public get_next_notification_call(NotificationEventRequest rqst, org.apache.thrift.async.AsyncMethodCallback<NotificationEventResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.rqst = rqst;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_next_notification", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_next_notification_args args = new get_next_notification_args();
        args.setRqst(rqst);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public NotificationEventResponse getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_next_notification();
      }
    }

    public void get_current_notificationEventId(org.apache.thrift.async.AsyncMethodCallback<CurrentNotificationEventId> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_current_notificationEventId_call method_call = new get_current_notificationEventId_call(resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_current_notificationEventId_call extends org.apache.thrift.async.TAsyncMethodCall<CurrentNotificationEventId> {
      public get_current_notificationEventId_call(org.apache.thrift.async.AsyncMethodCallback<CurrentNotificationEventId> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_current_notificationEventId", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_current_notificationEventId_args args = new get_current_notificationEventId_args();
        args.write(prot);
        prot.writeMessageEnd();
      }

      public CurrentNotificationEventId getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_current_notificationEventId();
      }
    }

    public void get_notification_events_count(NotificationEventsCountRequest rqst, org.apache.thrift.async.AsyncMethodCallback<NotificationEventsCountResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_notification_events_count_call method_call = new get_notification_events_count_call(rqst, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_notification_events_count_call extends org.apache.thrift.async.TAsyncMethodCall<NotificationEventsCountResponse> {
      private NotificationEventsCountRequest rqst;
      public get_notification_events_count_call(NotificationEventsCountRequest rqst, org.apache.thrift.async.AsyncMethodCallback<NotificationEventsCountResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.rqst = rqst;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_notification_events_count", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_notification_events_count_args args = new get_notification_events_count_args();
        args.setRqst(rqst);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public NotificationEventsCountResponse getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_notification_events_count();
      }
    }

    public void fire_listener_event(FireEventRequest rqst, org.apache.thrift.async.AsyncMethodCallback<FireEventResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      fire_listener_event_call method_call = new fire_listener_event_call(rqst, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class fire_listener_event_call extends org.apache.thrift.async.TAsyncMethodCall<FireEventResponse> {
      private FireEventRequest rqst;
      public fire_listener_event_call(FireEventRequest rqst, org.apache.thrift.async.AsyncMethodCallback<FireEventResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.rqst = rqst;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("fire_listener_event", org.apache.thrift.protocol.TMessageType.CALL, 0));
        fire_listener_event_args args = new fire_listener_event_args();
        args.setRqst(rqst);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public FireEventResponse getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_fire_listener_event();
      }
    }

    public void flushCache(org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      flushCache_call method_call = new flushCache_call(resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class flushCache_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      public flushCache_call(org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("flushCache", org.apache.thrift.protocol.TMessageType.CALL, 0));
        flushCache_args args = new flushCache_args();
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void cm_recycle(CmRecycleRequest request, org.apache.thrift.async.AsyncMethodCallback<CmRecycleResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      cm_recycle_call method_call = new cm_recycle_call(request, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class cm_recycle_call extends org.apache.thrift.async.TAsyncMethodCall<CmRecycleResponse> {
      private CmRecycleRequest request;
      public cm_recycle_call(CmRecycleRequest request, org.apache.thrift.async.AsyncMethodCallback<CmRecycleResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("cm_recycle", org.apache.thrift.protocol.TMessageType.CALL, 0));
        cm_recycle_args args = new cm_recycle_args();
        args.setRequest(request);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public CmRecycleResponse getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_cm_recycle();
      }
    }

    public void get_file_metadata_by_expr(GetFileMetadataByExprRequest req, org.apache.thrift.async.AsyncMethodCallback<GetFileMetadataByExprResult> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_file_metadata_by_expr_call method_call = new get_file_metadata_by_expr_call(req, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_file_metadata_by_expr_call extends org.apache.thrift.async.TAsyncMethodCall<GetFileMetadataByExprResult> {
      private GetFileMetadataByExprRequest req;
      public get_file_metadata_by_expr_call(GetFileMetadataByExprRequest req, org.apache.thrift.async.AsyncMethodCallback<GetFileMetadataByExprResult> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.req = req;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_file_metadata_by_expr", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_file_metadata_by_expr_args args = new get_file_metadata_by_expr_args();
        args.setReq(req);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public GetFileMetadataByExprResult getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_file_metadata_by_expr();
      }
    }

    public void get_file_metadata(GetFileMetadataRequest req, org.apache.thrift.async.AsyncMethodCallback<GetFileMetadataResult> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_file_metadata_call method_call = new get_file_metadata_call(req, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_file_metadata_call extends org.apache.thrift.async.TAsyncMethodCall<GetFileMetadataResult> {
      private GetFileMetadataRequest req;
      public get_file_metadata_call(GetFileMetadataRequest req, org.apache.thrift.async.AsyncMethodCallback<GetFileMetadataResult> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.req = req;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_file_metadata", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_file_metadata_args args = new get_file_metadata_args();
        args.setReq(req);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public GetFileMetadataResult getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_file_metadata();
      }
    }

    public void put_file_metadata(PutFileMetadataRequest req, org.apache.thrift.async.AsyncMethodCallback<PutFileMetadataResult> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      put_file_metadata_call method_call = new put_file_metadata_call(req, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class put_file_metadata_call extends org.apache.thrift.async.TAsyncMethodCall<PutFileMetadataResult> {
      private PutFileMetadataRequest req;
      public put_file_metadata_call(PutFileMetadataRequest req, org.apache.thrift.async.AsyncMethodCallback<PutFileMetadataResult> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.req = req;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("put_file_metadata", org.apache.thrift.protocol.TMessageType.CALL, 0));
        put_file_metadata_args args = new put_file_metadata_args();
        args.setReq(req);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public PutFileMetadataResult getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_put_file_metadata();
      }
    }

    public void clear_file_metadata(ClearFileMetadataRequest req, org.apache.thrift.async.AsyncMethodCallback<ClearFileMetadataResult> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      clear_file_metadata_call method_call = new clear_file_metadata_call(req, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class clear_file_metadata_call extends org.apache.thrift.async.TAsyncMethodCall<ClearFileMetadataResult> {
      private ClearFileMetadataRequest req;
      public clear_file_metadata_call(ClearFileMetadataRequest req, org.apache.thrift.async.AsyncMethodCallback<ClearFileMetadataResult> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.req = req;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("clear_file_metadata", org.apache.thrift.protocol.TMessageType.CALL, 0));
        clear_file_metadata_args args = new clear_file_metadata_args();
        args.setReq(req);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public ClearFileMetadataResult getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_clear_file_metadata();
      }
    }

    public void cache_file_metadata(CacheFileMetadataRequest req, org.apache.thrift.async.AsyncMethodCallback<CacheFileMetadataResult> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      cache_file_metadata_call method_call = new cache_file_metadata_call(req, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class cache_file_metadata_call extends org.apache.thrift.async.TAsyncMethodCall<CacheFileMetadataResult> {
      private CacheFileMetadataRequest req;
      public cache_file_metadata_call(CacheFileMetadataRequest req, org.apache.thrift.async.AsyncMethodCallback<CacheFileMetadataResult> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.req = req;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("cache_file_metadata", org.apache.thrift.protocol.TMessageType.CALL, 0));
        cache_file_metadata_args args = new cache_file_metadata_args();
        args.setReq(req);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public CacheFileMetadataResult getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_cache_file_metadata();
      }
    }

    public void get_metastore_db_uuid(org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_metastore_db_uuid_call method_call = new get_metastore_db_uuid_call(resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_metastore_db_uuid_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.String> {
      public get_metastore_db_uuid_call(org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_metastore_db_uuid", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_metastore_db_uuid_args args = new get_metastore_db_uuid_args();
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.lang.String getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_metastore_db_uuid();
      }
    }

    public void create_resource_plan(WMCreateResourcePlanRequest request, org.apache.thrift.async.AsyncMethodCallback<WMCreateResourcePlanResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      create_resource_plan_call method_call = new create_resource_plan_call(request, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_resource_plan_call extends org.apache.thrift.async.TAsyncMethodCall<WMCreateResourcePlanResponse> {
      private WMCreateResourcePlanRequest request;
      public create_resource_plan_call(WMCreateResourcePlanRequest request, org.apache.thrift.async.AsyncMethodCallback<WMCreateResourcePlanResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("create_resource_plan", org.apache.thrift.protocol.TMessageType.CALL, 0));
        create_resource_plan_args args = new create_resource_plan_args();
        args.setRequest(request);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public WMCreateResourcePlanResponse getResult() throws AlreadyExistsException, InvalidObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_create_resource_plan();
      }
    }

    public void get_resource_plan(WMGetResourcePlanRequest request, org.apache.thrift.async.AsyncMethodCallback<WMGetResourcePlanResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_resource_plan_call method_call = new get_resource_plan_call(request, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_resource_plan_call extends org.apache.thrift.async.TAsyncMethodCall<WMGetResourcePlanResponse> {
      private WMGetResourcePlanRequest request;
      public get_resource_plan_call(WMGetResourcePlanRequest request, org.apache.thrift.async.AsyncMethodCallback<WMGetResourcePlanResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_resource_plan", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_resource_plan_args args = new get_resource_plan_args();
        args.setRequest(request);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public WMGetResourcePlanResponse getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_resource_plan();
      }
    }

    public void get_active_resource_plan(WMGetActiveResourcePlanRequest request, org.apache.thrift.async.AsyncMethodCallback<WMGetActiveResourcePlanResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_active_resource_plan_call method_call = new get_active_resource_plan_call(request, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_active_resource_plan_call extends org.apache.thrift.async.TAsyncMethodCall<WMGetActiveResourcePlanResponse> {
      private WMGetActiveResourcePlanRequest request;
      public get_active_resource_plan_call(WMGetActiveResourcePlanRequest request, org.apache.thrift.async.AsyncMethodCallback<WMGetActiveResourcePlanResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_active_resource_plan", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_active_resource_plan_args args = new get_active_resource_plan_args();
        args.setRequest(request);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public WMGetActiveResourcePlanResponse getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_active_resource_plan();
      }
    }

    public void get_all_resource_plans(WMGetAllResourcePlanRequest request, org.apache.thrift.async.AsyncMethodCallback<WMGetAllResourcePlanResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_all_resource_plans_call method_call = new get_all_resource_plans_call(request, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_all_resource_plans_call extends org.apache.thrift.async.TAsyncMethodCall<WMGetAllResourcePlanResponse> {
      private WMGetAllResourcePlanRequest request;
      public get_all_resource_plans_call(WMGetAllResourcePlanRequest request, org.apache.thrift.async.AsyncMethodCallback<WMGetAllResourcePlanResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_all_resource_plans", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_all_resource_plans_args args = new get_all_resource_plans_args();
        args.setRequest(request);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public WMGetAllResourcePlanResponse getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_all_resource_plans();
      }
    }

    public void alter_resource_plan(WMAlterResourcePlanRequest request, org.apache.thrift.async.AsyncMethodCallback<WMAlterResourcePlanResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      alter_resource_plan_call method_call = new alter_resource_plan_call(request, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_resource_plan_call extends org.apache.thrift.async.TAsyncMethodCall<WMAlterResourcePlanResponse> {
      private WMAlterResourcePlanRequest request;
      public alter_resource_plan_call(WMAlterResourcePlanRequest request, org.apache.thrift.async.AsyncMethodCallback<WMAlterResourcePlanResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("alter_resource_plan", org.apache.thrift.protocol.TMessageType.CALL, 0));
        alter_resource_plan_args args = new alter_resource_plan_args();
        args.setRequest(request);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public WMAlterResourcePlanResponse getResult() throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_alter_resource_plan();
      }
    }

    public void validate_resource_plan(WMValidateResourcePlanRequest request, org.apache.thrift.async.AsyncMethodCallback<WMValidateResourcePlanResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      validate_resource_plan_call method_call = new validate_resource_plan_call(request, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class validate_resource_plan_call extends org.apache.thrift.async.TAsyncMethodCall<WMValidateResourcePlanResponse> {
      private WMValidateResourcePlanRequest request;
      public validate_resource_plan_call(WMValidateResourcePlanRequest request, org.apache.thrift.async.AsyncMethodCallback<WMValidateResourcePlanResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("validate_resource_plan", org.apache.thrift.protocol.TMessageType.CALL, 0));
        validate_resource_plan_args args = new validate_resource_plan_args();
        args.setRequest(request);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public WMValidateResourcePlanResponse getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_validate_resource_plan();
      }
    }

    public void drop_resource_plan(WMDropResourcePlanRequest request, org.apache.thrift.async.AsyncMethodCallback<WMDropResourcePlanResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      drop_resource_plan_call method_call = new drop_resource_plan_call(request, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_resource_plan_call extends org.apache.thrift.async.TAsyncMethodCall<WMDropResourcePlanResponse> {
      private WMDropResourcePlanRequest request;
      public drop_resource_plan_call(WMDropResourcePlanRequest request, org.apache.thrift.async.AsyncMethodCallback<WMDropResourcePlanResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("drop_resource_plan", org.apache.thrift.protocol.TMessageType.CALL, 0));
        drop_resource_plan_args args = new drop_resource_plan_args();
        args.setRequest(request);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public WMDropResourcePlanResponse getResult() throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_drop_resource_plan();
      }
    }

    public void create_wm_trigger(WMCreateTriggerRequest request, org.apache.thrift.async.AsyncMethodCallback<WMCreateTriggerResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      create_wm_trigger_call method_call = new create_wm_trigger_call(request, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_wm_trigger_call extends org.apache.thrift.async.TAsyncMethodCall<WMCreateTriggerResponse> {
      private WMCreateTriggerRequest request;
      public create_wm_trigger_call(WMCreateTriggerRequest request, org.apache.thrift.async.AsyncMethodCallback<WMCreateTriggerResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("create_wm_trigger", org.apache.thrift.protocol.TMessageType.CALL, 0));
        create_wm_trigger_args args = new create_wm_trigger_args();
        args.setRequest(request);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public WMCreateTriggerResponse getResult() throws AlreadyExistsException, NoSuchObjectException, InvalidObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_create_wm_trigger();
      }
    }

    public void alter_wm_trigger(WMAlterTriggerRequest request, org.apache.thrift.async.AsyncMethodCallback<WMAlterTriggerResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      alter_wm_trigger_call method_call = new alter_wm_trigger_call(request, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_wm_trigger_call extends org.apache.thrift.async.TAsyncMethodCall<WMAlterTriggerResponse> {
      private WMAlterTriggerRequest request;
      public alter_wm_trigger_call(WMAlterTriggerRequest request, org.apache.thrift.async.AsyncMethodCallback<WMAlterTriggerResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("alter_wm_trigger", org.apache.thrift.protocol.TMessageType.CALL, 0));
        alter_wm_trigger_args args = new alter_wm_trigger_args();
        args.setRequest(request);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public WMAlterTriggerResponse getResult() throws NoSuchObjectException, InvalidObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_alter_wm_trigger();
      }
    }

    public void drop_wm_trigger(WMDropTriggerRequest request, org.apache.thrift.async.AsyncMethodCallback<WMDropTriggerResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      drop_wm_trigger_call method_call = new drop_wm_trigger_call(request, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_wm_trigger_call extends org.apache.thrift.async.TAsyncMethodCall<WMDropTriggerResponse> {
      private WMDropTriggerRequest request;
      public drop_wm_trigger_call(WMDropTriggerRequest request, org.apache.thrift.async.AsyncMethodCallback<WMDropTriggerResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("drop_wm_trigger", org.apache.thrift.protocol.TMessageType.CALL, 0));
        drop_wm_trigger_args args = new drop_wm_trigger_args();
        args.setRequest(request);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public WMDropTriggerResponse getResult() throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_drop_wm_trigger();
      }
    }

    public void get_triggers_for_resourceplan(WMGetTriggersForResourePlanRequest request, org.apache.thrift.async.AsyncMethodCallback<WMGetTriggersForResourePlanResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_triggers_for_resourceplan_call method_call = new get_triggers_for_resourceplan_call(request, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_triggers_for_resourceplan_call extends org.apache.thrift.async.TAsyncMethodCall<WMGetTriggersForResourePlanResponse> {
      private WMGetTriggersForResourePlanRequest request;
      public get_triggers_for_resourceplan_call(WMGetTriggersForResourePlanRequest request, org.apache.thrift.async.AsyncMethodCallback<WMGetTriggersForResourePlanResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_triggers_for_resourceplan", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_triggers_for_resourceplan_args args = new get_triggers_for_resourceplan_args();
        args.setRequest(request);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public WMGetTriggersForResourePlanResponse getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_triggers_for_resourceplan();
      }
    }

    public void create_wm_pool(WMCreatePoolRequest request, org.apache.thrift.async.AsyncMethodCallback<WMCreatePoolResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      create_wm_pool_call method_call = new create_wm_pool_call(request, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_wm_pool_call extends org.apache.thrift.async.TAsyncMethodCall<WMCreatePoolResponse> {
      private WMCreatePoolRequest request;
      public create_wm_pool_call(WMCreatePoolRequest request, org.apache.thrift.async.AsyncMethodCallback<WMCreatePoolResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("create_wm_pool", org.apache.thrift.protocol.TMessageType.CALL, 0));
        create_wm_pool_args args = new create_wm_pool_args();
        args.setRequest(request);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public WMCreatePoolResponse getResult() throws AlreadyExistsException, NoSuchObjectException, InvalidObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_create_wm_pool();
      }
    }

    public void alter_wm_pool(WMAlterPoolRequest request, org.apache.thrift.async.AsyncMethodCallback<WMAlterPoolResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      alter_wm_pool_call method_call = new alter_wm_pool_call(request, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_wm_pool_call extends org.apache.thrift.async.TAsyncMethodCall<WMAlterPoolResponse> {
      private WMAlterPoolRequest request;
      public alter_wm_pool_call(WMAlterPoolRequest request, org.apache.thrift.async.AsyncMethodCallback<WMAlterPoolResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("alter_wm_pool", org.apache.thrift.protocol.TMessageType.CALL, 0));
        alter_wm_pool_args args = new alter_wm_pool_args();
        args.setRequest(request);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public WMAlterPoolResponse getResult() throws AlreadyExistsException, NoSuchObjectException, InvalidObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_alter_wm_pool();
      }
    }

    public void drop_wm_pool(WMDropPoolRequest request, org.apache.thrift.async.AsyncMethodCallback<WMDropPoolResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      drop_wm_pool_call method_call = new drop_wm_pool_call(request, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_wm_pool_call extends org.apache.thrift.async.TAsyncMethodCall<WMDropPoolResponse> {
      private WMDropPoolRequest request;
      public drop_wm_pool_call(WMDropPoolRequest request, org.apache.thrift.async.AsyncMethodCallback<WMDropPoolResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("drop_wm_pool", org.apache.thrift.protocol.TMessageType.CALL, 0));
        drop_wm_pool_args args = new drop_wm_pool_args();
        args.setRequest(request);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public WMDropPoolResponse getResult() throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_drop_wm_pool();
      }
    }

    public void create_or_update_wm_mapping(WMCreateOrUpdateMappingRequest request, org.apache.thrift.async.AsyncMethodCallback<WMCreateOrUpdateMappingResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      create_or_update_wm_mapping_call method_call = new create_or_update_wm_mapping_call(request, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_or_update_wm_mapping_call extends org.apache.thrift.async.TAsyncMethodCall<WMCreateOrUpdateMappingResponse> {
      private WMCreateOrUpdateMappingRequest request;
      public create_or_update_wm_mapping_call(WMCreateOrUpdateMappingRequest request, org.apache.thrift.async.AsyncMethodCallback<WMCreateOrUpdateMappingResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("create_or_update_wm_mapping", org.apache.thrift.protocol.TMessageType.CALL, 0));
        create_or_update_wm_mapping_args args = new create_or_update_wm_mapping_args();
        args.setRequest(request);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public WMCreateOrUpdateMappingResponse getResult() throws AlreadyExistsException, NoSuchObjectException, InvalidObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_create_or_update_wm_mapping();
      }
    }

    public void drop_wm_mapping(WMDropMappingRequest request, org.apache.thrift.async.AsyncMethodCallback<WMDropMappingResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      drop_wm_mapping_call method_call = new drop_wm_mapping_call(request, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_wm_mapping_call extends org.apache.thrift.async.TAsyncMethodCall<WMDropMappingResponse> {
      private WMDropMappingRequest request;
      public drop_wm_mapping_call(WMDropMappingRequest request, org.apache.thrift.async.AsyncMethodCallback<WMDropMappingResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("drop_wm_mapping", org.apache.thrift.protocol.TMessageType.CALL, 0));
        drop_wm_mapping_args args = new drop_wm_mapping_args();
        args.setRequest(request);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public WMDropMappingResponse getResult() throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_drop_wm_mapping();
      }
    }

    public void create_or_drop_wm_trigger_to_pool_mapping(WMCreateOrDropTriggerToPoolMappingRequest request, org.apache.thrift.async.AsyncMethodCallback<WMCreateOrDropTriggerToPoolMappingResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      create_or_drop_wm_trigger_to_pool_mapping_call method_call = new create_or_drop_wm_trigger_to_pool_mapping_call(request, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_or_drop_wm_trigger_to_pool_mapping_call extends org.apache.thrift.async.TAsyncMethodCall<WMCreateOrDropTriggerToPoolMappingResponse> {
      private WMCreateOrDropTriggerToPoolMappingRequest request;
      public create_or_drop_wm_trigger_to_pool_mapping_call(WMCreateOrDropTriggerToPoolMappingRequest request, org.apache.thrift.async.AsyncMethodCallback<WMCreateOrDropTriggerToPoolMappingResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.request = request;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("create_or_drop_wm_trigger_to_pool_mapping", org.apache.thrift.protocol.TMessageType.CALL, 0));
        create_or_drop_wm_trigger_to_pool_mapping_args args = new create_or_drop_wm_trigger_to_pool_mapping_args();
        args.setRequest(request);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public WMCreateOrDropTriggerToPoolMappingResponse getResult() throws AlreadyExistsException, NoSuchObjectException, InvalidObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_create_or_drop_wm_trigger_to_pool_mapping();
      }
    }

    public void create_ischema(ISchema schema, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      create_ischema_call method_call = new create_ischema_call(schema, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_ischema_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private ISchema schema;
      public create_ischema_call(ISchema schema, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.schema = schema;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("create_ischema", org.apache.thrift.protocol.TMessageType.CALL, 0));
        create_ischema_args args = new create_ischema_args();
        args.setSchema(schema);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws AlreadyExistsException, NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void alter_ischema(AlterISchemaRequest rqst, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      alter_ischema_call method_call = new alter_ischema_call(rqst, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_ischema_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private AlterISchemaRequest rqst;
      public alter_ischema_call(AlterISchemaRequest rqst, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.rqst = rqst;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("alter_ischema", org.apache.thrift.protocol.TMessageType.CALL, 0));
        alter_ischema_args args = new alter_ischema_args();
        args.setRqst(rqst);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void get_ischema(ISchemaName name, org.apache.thrift.async.AsyncMethodCallback<ISchema> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_ischema_call method_call = new get_ischema_call(name, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_ischema_call extends org.apache.thrift.async.TAsyncMethodCall<ISchema> {
      private ISchemaName name;
      public get_ischema_call(ISchemaName name, org.apache.thrift.async.AsyncMethodCallback<ISchema> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.name = name;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_ischema", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_ischema_args args = new get_ischema_args();
        args.setName(name);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public ISchema getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_ischema();
      }
    }

    public void drop_ischema(ISchemaName name, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      drop_ischema_call method_call = new drop_ischema_call(name, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_ischema_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private ISchemaName name;
      public drop_ischema_call(ISchemaName name, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.name = name;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("drop_ischema", org.apache.thrift.protocol.TMessageType.CALL, 0));
        drop_ischema_args args = new drop_ischema_args();
        args.setName(name);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void add_schema_version(SchemaVersion schemaVersion, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      add_schema_version_call method_call = new add_schema_version_call(schemaVersion, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_schema_version_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private SchemaVersion schemaVersion;
      public add_schema_version_call(SchemaVersion schemaVersion, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.schemaVersion = schemaVersion;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("add_schema_version", org.apache.thrift.protocol.TMessageType.CALL, 0));
        add_schema_version_args args = new add_schema_version_args();
        args.setSchemaVersion(schemaVersion);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws AlreadyExistsException, NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void get_schema_version(SchemaVersionDescriptor schemaVersion, org.apache.thrift.async.AsyncMethodCallback<SchemaVersion> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_schema_version_call method_call = new get_schema_version_call(schemaVersion, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_schema_version_call extends org.apache.thrift.async.TAsyncMethodCall<SchemaVersion> {
      private SchemaVersionDescriptor schemaVersion;
      public get_schema_version_call(SchemaVersionDescriptor schemaVersion, org.apache.thrift.async.AsyncMethodCallback<SchemaVersion> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.schemaVersion = schemaVersion;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_schema_version", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_schema_version_args args = new get_schema_version_args();
        args.setSchemaVersion(schemaVersion);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public SchemaVersion getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_schema_version();
      }
    }

    public void get_schema_latest_version(ISchemaName schemaName, org.apache.thrift.async.AsyncMethodCallback<SchemaVersion> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_schema_latest_version_call method_call = new get_schema_latest_version_call(schemaName, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_schema_latest_version_call extends org.apache.thrift.async.TAsyncMethodCall<SchemaVersion> {
      private ISchemaName schemaName;
      public get_schema_latest_version_call(ISchemaName schemaName, org.apache.thrift.async.AsyncMethodCallback<SchemaVersion> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.schemaName = schemaName;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_schema_latest_version", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_schema_latest_version_args args = new get_schema_latest_version_args();
        args.setSchemaName(schemaName);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public SchemaVersion getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_schema_latest_version();
      }
    }

    public void get_schema_all_versions(ISchemaName schemaName, org.apache.thrift.async.AsyncMethodCallback<java.util.List<SchemaVersion>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_schema_all_versions_call method_call = new get_schema_all_versions_call(schemaName, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_schema_all_versions_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<SchemaVersion>> {
      private ISchemaName schemaName;
      public get_schema_all_versions_call(ISchemaName schemaName, org.apache.thrift.async.AsyncMethodCallback<java.util.List<SchemaVersion>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.schemaName = schemaName;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_schema_all_versions", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_schema_all_versions_args args = new get_schema_all_versions_args();
        args.setSchemaName(schemaName);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.List<SchemaVersion> getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_schema_all_versions();
      }
    }

    public void drop_schema_version(SchemaVersionDescriptor schemaVersion, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      drop_schema_version_call method_call = new drop_schema_version_call(schemaVersion, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_schema_version_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private SchemaVersionDescriptor schemaVersion;
      public drop_schema_version_call(SchemaVersionDescriptor schemaVersion, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.schemaVersion = schemaVersion;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("drop_schema_version", org.apache.thrift.protocol.TMessageType.CALL, 0));
        drop_schema_version_args args = new drop_schema_version_args();
        args.setSchemaVersion(schemaVersion);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void get_schemas_by_cols(FindSchemasByColsRqst rqst, org.apache.thrift.async.AsyncMethodCallback<FindSchemasByColsResp> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_schemas_by_cols_call method_call = new get_schemas_by_cols_call(rqst, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_schemas_by_cols_call extends org.apache.thrift.async.TAsyncMethodCall<FindSchemasByColsResp> {
      private FindSchemasByColsRqst rqst;
      public get_schemas_by_cols_call(FindSchemasByColsRqst rqst, org.apache.thrift.async.AsyncMethodCallback<FindSchemasByColsResp> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.rqst = rqst;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_schemas_by_cols", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_schemas_by_cols_args args = new get_schemas_by_cols_args();
        args.setRqst(rqst);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public FindSchemasByColsResp getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_schemas_by_cols();
      }
    }

    public void map_schema_version_to_serde(MapSchemaVersionToSerdeRequest rqst, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      map_schema_version_to_serde_call method_call = new map_schema_version_to_serde_call(rqst, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class map_schema_version_to_serde_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private MapSchemaVersionToSerdeRequest rqst;
      public map_schema_version_to_serde_call(MapSchemaVersionToSerdeRequest rqst, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.rqst = rqst;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("map_schema_version_to_serde", org.apache.thrift.protocol.TMessageType.CALL, 0));
        map_schema_version_to_serde_args args = new map_schema_version_to_serde_args();
        args.setRqst(rqst);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void set_schema_version_state(SetSchemaVersionStateRequest rqst, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      set_schema_version_state_call method_call = new set_schema_version_state_call(rqst, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class set_schema_version_state_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private SetSchemaVersionStateRequest rqst;
      public set_schema_version_state_call(SetSchemaVersionStateRequest rqst, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.rqst = rqst;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("set_schema_version_state", org.apache.thrift.protocol.TMessageType.CALL, 0));
        set_schema_version_state_args args = new set_schema_version_state_args();
        args.setRqst(rqst);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws NoSuchObjectException, InvalidOperationException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void add_serde(SerDeInfo serde, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      add_serde_call method_call = new add_serde_call(serde, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_serde_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private SerDeInfo serde;
      public add_serde_call(SerDeInfo serde, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.serde = serde;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("add_serde", org.apache.thrift.protocol.TMessageType.CALL, 0));
        add_serde_args args = new add_serde_args();
        args.setSerde(serde);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws AlreadyExistsException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void get_serde(GetSerdeRequest rqst, org.apache.thrift.async.AsyncMethodCallback<SerDeInfo> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_serde_call method_call = new get_serde_call(rqst, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_serde_call extends org.apache.thrift.async.TAsyncMethodCall<SerDeInfo> {
      private GetSerdeRequest rqst;
      public get_serde_call(GetSerdeRequest rqst, org.apache.thrift.async.AsyncMethodCallback<SerDeInfo> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.rqst = rqst;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_serde", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_serde_args args = new get_serde_args();
        args.setRqst(rqst);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public SerDeInfo getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_serde();
      }
    }

    public void get_lock_materialization_rebuild(java.lang.String dbName, java.lang.String tableName, long txnId, org.apache.thrift.async.AsyncMethodCallback<LockResponse> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_lock_materialization_rebuild_call method_call = new get_lock_materialization_rebuild_call(dbName, tableName, txnId, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_lock_materialization_rebuild_call extends org.apache.thrift.async.TAsyncMethodCall<LockResponse> {
      private java.lang.String dbName;
      private java.lang.String tableName;
      private long txnId;
      public get_lock_materialization_rebuild_call(java.lang.String dbName, java.lang.String tableName, long txnId, org.apache.thrift.async.AsyncMethodCallback<LockResponse> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.dbName = dbName;
        this.tableName = tableName;
        this.txnId = txnId;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_lock_materialization_rebuild", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_lock_materialization_rebuild_args args = new get_lock_materialization_rebuild_args();
        args.setDbName(dbName);
        args.setTableName(tableName);
        args.setTxnId(txnId);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public LockResponse getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_lock_materialization_rebuild();
      }
    }

    public void heartbeat_lock_materialization_rebuild(java.lang.String dbName, java.lang.String tableName, long txnId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      heartbeat_lock_materialization_rebuild_call method_call = new heartbeat_lock_materialization_rebuild_call(dbName, tableName, txnId, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class heartbeat_lock_materialization_rebuild_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Boolean> {
      private java.lang.String dbName;
      private java.lang.String tableName;
      private long txnId;
      public heartbeat_lock_materialization_rebuild_call(java.lang.String dbName, java.lang.String tableName, long txnId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.dbName = dbName;
        this.tableName = tableName;
        this.txnId = txnId;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("heartbeat_lock_materialization_rebuild", org.apache.thrift.protocol.TMessageType.CALL, 0));
        heartbeat_lock_materialization_rebuild_args args = new heartbeat_lock_materialization_rebuild_args();
        args.setDbName(dbName);
        args.setTableName(tableName);
        args.setTxnId(txnId);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.lang.Boolean getResult() throws org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_heartbeat_lock_materialization_rebuild();
      }
    }

    public void add_runtime_stats(RuntimeStat stat, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      add_runtime_stats_call method_call = new add_runtime_stats_call(stat, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_runtime_stats_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
      private RuntimeStat stat;
      public add_runtime_stats_call(RuntimeStat stat, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.stat = stat;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("add_runtime_stats", org.apache.thrift.protocol.TMessageType.CALL, 0));
        add_runtime_stats_args args = new add_runtime_stats_args();
        args.setStat(stat);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public Void getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return null;
      }
    }

    public void get_runtime_stats(GetRuntimeStatsRequest rqst, org.apache.thrift.async.AsyncMethodCallback<java.util.List<RuntimeStat>> resultHandler) throws org.apache.thrift.TException {
      checkReady();
      get_runtime_stats_call method_call = new get_runtime_stats_call(rqst, resultHandler, this, ___protocolFactory, ___transport);
      this.___currentMethod = method_call;
      ___manager.call(method_call);
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_runtime_stats_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<RuntimeStat>> {
      private GetRuntimeStatsRequest rqst;
      public get_runtime_stats_call(GetRuntimeStatsRequest rqst, org.apache.thrift.async.AsyncMethodCallback<java.util.List<RuntimeStat>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
        super(client, protocolFactory, transport, resultHandler, false);
        this.rqst = rqst;
      }

      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_runtime_stats", org.apache.thrift.protocol.TMessageType.CALL, 0));
        get_runtime_stats_args args = new get_runtime_stats_args();
        args.setRqst(rqst);
        args.write(prot);
        prot.writeMessageEnd();
      }

      public java.util.List<RuntimeStat> getResult() throws MetaException, org.apache.thrift.TException {
        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
          throw new java.lang.IllegalStateException("Method call not finished!");
        }
        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
        return (new Client(prot)).recv_get_runtime_stats();
      }
    }

  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class Processor<I extends Iface> extends com.facebook.fb303.FacebookService.Processor<I> implements org.apache.thrift.TProcessor {
    private static final org.slf4j.Logger _LOGGER = org.slf4j.LoggerFactory.getLogger(Processor.class.getName());
    public Processor(I iface) {
      super(iface, getProcessMap(new java.util.HashMap<java.lang.String, org.apache.thrift.ProcessFunction<I, ? extends org.apache.thrift.TBase>>()));
    }

    protected Processor(I iface, java.util.Map<java.lang.String, org.apache.thrift.ProcessFunction<I, ? extends org.apache.thrift.TBase>> processMap) {
      super(iface, getProcessMap(processMap));
    }

    private static <I extends Iface> java.util.Map<java.lang.String,  org.apache.thrift.ProcessFunction<I, ? extends org.apache.thrift.TBase>> getProcessMap(java.util.Map<java.lang.String, org.apache.thrift.ProcessFunction<I, ? extends  org.apache.thrift.TBase>> processMap) {
      processMap.put("getMetaConf", new getMetaConf());
      processMap.put("setMetaConf", new setMetaConf());
      processMap.put("init_schema", new init_schema());
      processMap.put("create_catalog", new create_catalog());
      processMap.put("alter_catalog", new alter_catalog());
      processMap.put("get_catalog", new get_catalog());
      processMap.put("get_catalogs", new get_catalogs());
      processMap.put("drop_catalog", new drop_catalog());
      processMap.put("create_database", new create_database());
      processMap.put("get_database", new get_database());
      processMap.put("drop_database", new drop_database());
      processMap.put("get_databases", new get_databases());
      processMap.put("get_all_databases", new get_all_databases());
      processMap.put("alter_database", new alter_database());
      processMap.put("get_type", new get_type());
      processMap.put("create_type", new create_type());
      processMap.put("drop_type", new drop_type());
      processMap.put("get_type_all", new get_type_all());
      processMap.put("get_fields", new get_fields());
      processMap.put("get_fields_with_environment_context", new get_fields_with_environment_context());
      processMap.put("get_schema", new get_schema());
      processMap.put("get_schema_with_environment_context", new get_schema_with_environment_context());
      processMap.put("create_table", new create_table());
      processMap.put("create_table_with_environment_context", new create_table_with_environment_context());
      processMap.put("create_table_with_constraints", new create_table_with_constraints());
      processMap.put("drop_constraint", new drop_constraint());
      processMap.put("add_primary_key", new add_primary_key());
      processMap.put("add_foreign_key", new add_foreign_key());
      processMap.put("add_unique_constraint", new add_unique_constraint());
      processMap.put("add_not_null_constraint", new add_not_null_constraint());
      processMap.put("add_default_constraint", new add_default_constraint());
      processMap.put("add_check_constraint", new add_check_constraint());
      processMap.put("drop_table", new drop_table());
      processMap.put("drop_table_with_environment_context", new drop_table_with_environment_context());
      processMap.put("truncate_table", new truncate_table());
      processMap.put("get_tables", new get_tables());
      processMap.put("get_tables_by_type", new get_tables_by_type());
      processMap.put("get_materialized_views_for_rewriting", new get_materialized_views_for_rewriting());
      processMap.put("get_table_meta", new get_table_meta());
      processMap.put("get_all_tables", new get_all_tables());
      processMap.put("get_table", new get_table());
      processMap.put("get_table_objects_by_name", new get_table_objects_by_name());
      processMap.put("get_table_req", new get_table_req());
      processMap.put("get_table_objects_by_name_req", new get_table_objects_by_name_req());
      processMap.put("get_materialization_invalidation_info", new get_materialization_invalidation_info());
      processMap.put("update_creation_metadata", new update_creation_metadata());
      processMap.put("get_table_names_by_filter", new get_table_names_by_filter());
      processMap.put("alter_table", new alter_table());
      processMap.put("alter_table_with_environment_context", new alter_table_with_environment_context());
      processMap.put("alter_table_with_cascade", new alter_table_with_cascade());
      processMap.put("add_partition", new add_partition());
      processMap.put("add_partition_with_environment_context", new add_partition_with_environment_context());
      processMap.put("add_partitions", new add_partitions());
      processMap.put("add_partitions_pspec", new add_partitions_pspec());
      processMap.put("append_partition", new append_partition());
      processMap.put("add_partitions_req", new add_partitions_req());
      processMap.put("append_partition_with_environment_context", new append_partition_with_environment_context());
      processMap.put("append_partition_by_name", new append_partition_by_name());
      processMap.put("append_partition_by_name_with_environment_context", new append_partition_by_name_with_environment_context());
      processMap.put("drop_partition", new drop_partition());
      processMap.put("drop_partition_with_environment_context", new drop_partition_with_environment_context());
      processMap.put("drop_partition_by_name", new drop_partition_by_name());
      processMap.put("drop_partition_by_name_with_environment_context", new drop_partition_by_name_with_environment_context());
      processMap.put("drop_partitions_req", new drop_partitions_req());
      processMap.put("get_partition", new get_partition());
      processMap.put("exchange_partition", new exchange_partition());
      processMap.put("exchange_partitions", new exchange_partitions());
      processMap.put("get_partition_with_auth", new get_partition_with_auth());
      processMap.put("get_partition_by_name", new get_partition_by_name());
      processMap.put("get_partitions", new get_partitions());
      processMap.put("get_partitions_with_auth", new get_partitions_with_auth());
      processMap.put("get_partitions_pspec", new get_partitions_pspec());
      processMap.put("get_partition_names", new get_partition_names());
      processMap.put("get_partition_values", new get_partition_values());
      processMap.put("get_partitions_ps", new get_partitions_ps());
      processMap.put("get_partitions_ps_with_auth", new get_partitions_ps_with_auth());
      processMap.put("get_partition_names_ps", new get_partition_names_ps());
      processMap.put("get_partitions_by_filter", new get_partitions_by_filter());
      processMap.put("get_part_specs_by_filter", new get_part_specs_by_filter());
      processMap.put("get_partitions_by_expr", new get_partitions_by_expr());
      processMap.put("get_num_partitions_by_filter", new get_num_partitions_by_filter());
      processMap.put("get_partitions_by_names", new get_partitions_by_names());
      processMap.put("alter_partition", new alter_partition());
      processMap.put("alter_partitions", new alter_partitions());
      processMap.put("alter_partitions_with_environment_context", new alter_partitions_with_environment_context());
      processMap.put("alter_partition_with_environment_context", new alter_partition_with_environment_context());
      processMap.put("rename_partition", new rename_partition());
      processMap.put("partition_name_has_valid_characters", new partition_name_has_valid_characters());
      processMap.put("get_config_value", new get_config_value());
      processMap.put("partition_name_to_vals", new partition_name_to_vals());
      processMap.put("partition_name_to_spec", new partition_name_to_spec());
      processMap.put("markPartitionForEvent", new markPartitionForEvent());
      processMap.put("isPartitionMarkedForEvent", new isPartitionMarkedForEvent());
      processMap.put("get_primary_keys", new get_primary_keys());
      processMap.put("get_foreign_keys", new get_foreign_keys());
      processMap.put("get_unique_constraints", new get_unique_constraints());
      processMap.put("get_not_null_constraints", new get_not_null_constraints());
      processMap.put("get_default_constraints", new get_default_constraints());
      processMap.put("get_check_constraints", new get_check_constraints());
      processMap.put("update_table_column_statistics", new update_table_column_statistics());
      processMap.put("update_partition_column_statistics", new update_partition_column_statistics());
      processMap.put("get_table_column_statistics", new get_table_column_statistics());
      processMap.put("get_partition_column_statistics", new get_partition_column_statistics());
      processMap.put("get_table_statistics_req", new get_table_statistics_req());
      processMap.put("get_partitions_statistics_req", new get_partitions_statistics_req());
      processMap.put("get_aggr_stats_for", new get_aggr_stats_for());
      processMap.put("set_aggr_stats_for", new set_aggr_stats_for());
      processMap.put("delete_partition_column_statistics", new delete_partition_column_statistics());
      processMap.put("delete_table_column_statistics", new delete_table_column_statistics());
      processMap.put("create_function", new create_function());
      processMap.put("drop_function", new drop_function());
      processMap.put("alter_function", new alter_function());
      processMap.put("get_functions", new get_functions());
      processMap.put("get_function", new get_function());
      processMap.put("get_all_functions", new get_all_functions());
      processMap.put("create_role", new create_role());
      processMap.put("drop_role", new drop_role());
      processMap.put("get_role_names", new get_role_names());
      processMap.put("grant_role", new grant_role());
      processMap.put("revoke_role", new revoke_role());
      processMap.put("list_roles", new list_roles());
      processMap.put("grant_revoke_role", new grant_revoke_role());
      processMap.put("get_principals_in_role", new get_principals_in_role());
      processMap.put("get_role_grants_for_principal", new get_role_grants_for_principal());
      processMap.put("get_privilege_set", new get_privilege_set());
      processMap.put("list_privileges", new list_privileges());
      processMap.put("grant_privileges", new grant_privileges());
      processMap.put("revoke_privileges", new revoke_privileges());
      processMap.put("grant_revoke_privileges", new grant_revoke_privileges());
      processMap.put("refresh_privileges", new refresh_privileges());
      processMap.put("set_ugi", new set_ugi());
      processMap.put("get_delegation_token", new get_delegation_token());
      processMap.put("renew_delegation_token", new renew_delegation_token());
      processMap.put("cancel_delegation_token", new cancel_delegation_token());
      processMap.put("add_token", new add_token());
      processMap.put("remove_token", new remove_token());
      processMap.put("get_token", new get_token());
      processMap.put("get_all_token_identifiers", new get_all_token_identifiers());
      processMap.put("add_master_key", new add_master_key());
      processMap.put("update_master_key", new update_master_key());
      processMap.put("remove_master_key", new remove_master_key());
      processMap.put("get_master_keys", new get_master_keys());
      processMap.put("get_open_txns", new get_open_txns());
      processMap.put("get_open_txns_info", new get_open_txns_info());
      processMap.put("open_txns", new open_txns());
      processMap.put("abort_txn", new abort_txn());
      processMap.put("abort_txns", new abort_txns());
      processMap.put("commit_txn", new commit_txn());
      processMap.put("repl_tbl_writeid_state", new repl_tbl_writeid_state());
      processMap.put("get_valid_write_ids", new get_valid_write_ids());
      processMap.put("allocate_table_write_ids", new allocate_table_write_ids());
      processMap.put("lock", new lock());
      processMap.put("check_lock", new check_lock());
      processMap.put("unlock", new unlock());
      processMap.put("show_locks", new show_locks());
      processMap.put("heartbeat", new heartbeat());
      processMap.put("heartbeat_txn_range", new heartbeat_txn_range());
      processMap.put("compact", new compact());
      processMap.put("compact2", new compact2());
      processMap.put("show_compact", new show_compact());
      processMap.put("add_dynamic_partitions", new add_dynamic_partitions());
      processMap.put("get_next_notification", new get_next_notification());
      processMap.put("get_current_notificationEventId", new get_current_notificationEventId());
      processMap.put("get_notification_events_count", new get_notification_events_count());
      processMap.put("fire_listener_event", new fire_listener_event());
      processMap.put("flushCache", new flushCache());
      processMap.put("cm_recycle", new cm_recycle());
      processMap.put("get_file_metadata_by_expr", new get_file_metadata_by_expr());
      processMap.put("get_file_metadata", new get_file_metadata());
      processMap.put("put_file_metadata", new put_file_metadata());
      processMap.put("clear_file_metadata", new clear_file_metadata());
      processMap.put("cache_file_metadata", new cache_file_metadata());
      processMap.put("get_metastore_db_uuid", new get_metastore_db_uuid());
      processMap.put("create_resource_plan", new create_resource_plan());
      processMap.put("get_resource_plan", new get_resource_plan());
      processMap.put("get_active_resource_plan", new get_active_resource_plan());
      processMap.put("get_all_resource_plans", new get_all_resource_plans());
      processMap.put("alter_resource_plan", new alter_resource_plan());
      processMap.put("validate_resource_plan", new validate_resource_plan());
      processMap.put("drop_resource_plan", new drop_resource_plan());
      processMap.put("create_wm_trigger", new create_wm_trigger());
      processMap.put("alter_wm_trigger", new alter_wm_trigger());
      processMap.put("drop_wm_trigger", new drop_wm_trigger());
      processMap.put("get_triggers_for_resourceplan", new get_triggers_for_resourceplan());
      processMap.put("create_wm_pool", new create_wm_pool());
      processMap.put("alter_wm_pool", new alter_wm_pool());
      processMap.put("drop_wm_pool", new drop_wm_pool());
      processMap.put("create_or_update_wm_mapping", new create_or_update_wm_mapping());
      processMap.put("drop_wm_mapping", new drop_wm_mapping());
      processMap.put("create_or_drop_wm_trigger_to_pool_mapping", new create_or_drop_wm_trigger_to_pool_mapping());
      processMap.put("create_ischema", new create_ischema());
      processMap.put("alter_ischema", new alter_ischema());
      processMap.put("get_ischema", new get_ischema());
      processMap.put("drop_ischema", new drop_ischema());
      processMap.put("add_schema_version", new add_schema_version());
      processMap.put("get_schema_version", new get_schema_version());
      processMap.put("get_schema_latest_version", new get_schema_latest_version());
      processMap.put("get_schema_all_versions", new get_schema_all_versions());
      processMap.put("drop_schema_version", new drop_schema_version());
      processMap.put("get_schemas_by_cols", new get_schemas_by_cols());
      processMap.put("map_schema_version_to_serde", new map_schema_version_to_serde());
      processMap.put("set_schema_version_state", new set_schema_version_state());
      processMap.put("add_serde", new add_serde());
      processMap.put("get_serde", new get_serde());
      processMap.put("get_lock_materialization_rebuild", new get_lock_materialization_rebuild());
      processMap.put("heartbeat_lock_materialization_rebuild", new heartbeat_lock_materialization_rebuild());
      processMap.put("add_runtime_stats", new add_runtime_stats());
      processMap.put("get_runtime_stats", new get_runtime_stats());
      return processMap;
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class getMetaConf<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getMetaConf_args> {
      public getMetaConf() {
        super("getMetaConf");
      }

      public getMetaConf_args getEmptyArgsInstance() {
        return new getMetaConf_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public getMetaConf_result getResult(I iface, getMetaConf_args args) throws org.apache.thrift.TException {
        getMetaConf_result result = new getMetaConf_result();
        try {
          result.success = iface.getMetaConf(args.key);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class setMetaConf<I extends Iface> extends org.apache.thrift.ProcessFunction<I, setMetaConf_args> {
      public setMetaConf() {
        super("setMetaConf");
      }

      public setMetaConf_args getEmptyArgsInstance() {
        return new setMetaConf_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public setMetaConf_result getResult(I iface, setMetaConf_args args) throws org.apache.thrift.TException {
        setMetaConf_result result = new setMetaConf_result();
        try {
          iface.setMetaConf(args.key, args.value);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class init_schema<I extends Iface> extends org.apache.thrift.ProcessFunction<I, init_schema_args> {
      public init_schema() {
        super("init_schema");
      }

      public init_schema_args getEmptyArgsInstance() {
        return new init_schema_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public init_schema_result getResult(I iface, init_schema_args args) throws org.apache.thrift.TException {
        init_schema_result result = new init_schema_result();
        try {
          result.success = iface.init_schema(args.dbType, args.username, args.password);
          result.setSuccessIsSet(true);
        } catch (MetaException ex) {
          result.ex = ex;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_catalog<I extends Iface> extends org.apache.thrift.ProcessFunction<I, create_catalog_args> {
      public create_catalog() {
        super("create_catalog");
      }

      public create_catalog_args getEmptyArgsInstance() {
        return new create_catalog_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public create_catalog_result getResult(I iface, create_catalog_args args) throws org.apache.thrift.TException {
        create_catalog_result result = new create_catalog_result();
        try {
          iface.create_catalog(args.catalog);
        } catch (AlreadyExistsException o1) {
          result.o1 = o1;
        } catch (InvalidObjectException o2) {
          result.o2 = o2;
        } catch (MetaException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_catalog<I extends Iface> extends org.apache.thrift.ProcessFunction<I, alter_catalog_args> {
      public alter_catalog() {
        super("alter_catalog");
      }

      public alter_catalog_args getEmptyArgsInstance() {
        return new alter_catalog_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public alter_catalog_result getResult(I iface, alter_catalog_args args) throws org.apache.thrift.TException {
        alter_catalog_result result = new alter_catalog_result();
        try {
          iface.alter_catalog(args.rqst);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (InvalidOperationException o2) {
          result.o2 = o2;
        } catch (MetaException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_catalog<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_catalog_args> {
      public get_catalog() {
        super("get_catalog");
      }

      public get_catalog_args getEmptyArgsInstance() {
        return new get_catalog_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_catalog_result getResult(I iface, get_catalog_args args) throws org.apache.thrift.TException {
        get_catalog_result result = new get_catalog_result();
        try {
          result.success = iface.get_catalog(args.catName);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_catalogs<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_catalogs_args> {
      public get_catalogs() {
        super("get_catalogs");
      }

      public get_catalogs_args getEmptyArgsInstance() {
        return new get_catalogs_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_catalogs_result getResult(I iface, get_catalogs_args args) throws org.apache.thrift.TException {
        get_catalogs_result result = new get_catalogs_result();
        try {
          result.success = iface.get_catalogs();
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_catalog<I extends Iface> extends org.apache.thrift.ProcessFunction<I, drop_catalog_args> {
      public drop_catalog() {
        super("drop_catalog");
      }

      public drop_catalog_args getEmptyArgsInstance() {
        return new drop_catalog_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public drop_catalog_result getResult(I iface, drop_catalog_args args) throws org.apache.thrift.TException {
        drop_catalog_result result = new drop_catalog_result();
        try {
          iface.drop_catalog(args.catName);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (InvalidOperationException o2) {
          result.o2 = o2;
        } catch (MetaException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_database<I extends Iface> extends org.apache.thrift.ProcessFunction<I, create_database_args> {
      public create_database() {
        super("create_database");
      }

      public create_database_args getEmptyArgsInstance() {
        return new create_database_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public create_database_result getResult(I iface, create_database_args args) throws org.apache.thrift.TException {
        create_database_result result = new create_database_result();
        try {
          iface.create_database(args.database);
        } catch (AlreadyExistsException o1) {
          result.o1 = o1;
        } catch (InvalidObjectException o2) {
          result.o2 = o2;
        } catch (MetaException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_database<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_database_args> {
      public get_database() {
        super("get_database");
      }

      public get_database_args getEmptyArgsInstance() {
        return new get_database_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_database_result getResult(I iface, get_database_args args) throws org.apache.thrift.TException {
        get_database_result result = new get_database_result();
        try {
          result.success = iface.get_database(args.name);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_database<I extends Iface> extends org.apache.thrift.ProcessFunction<I, drop_database_args> {
      public drop_database() {
        super("drop_database");
      }

      public drop_database_args getEmptyArgsInstance() {
        return new drop_database_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public drop_database_result getResult(I iface, drop_database_args args) throws org.apache.thrift.TException {
        drop_database_result result = new drop_database_result();
        try {
          iface.drop_database(args.name, args.deleteData, args.cascade);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (InvalidOperationException o2) {
          result.o2 = o2;
        } catch (MetaException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_databases<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_databases_args> {
      public get_databases() {
        super("get_databases");
      }

      public get_databases_args getEmptyArgsInstance() {
        return new get_databases_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_databases_result getResult(I iface, get_databases_args args) throws org.apache.thrift.TException {
        get_databases_result result = new get_databases_result();
        try {
          result.success = iface.get_databases(args.pattern);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_all_databases<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_all_databases_args> {
      public get_all_databases() {
        super("get_all_databases");
      }

      public get_all_databases_args getEmptyArgsInstance() {
        return new get_all_databases_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_all_databases_result getResult(I iface, get_all_databases_args args) throws org.apache.thrift.TException {
        get_all_databases_result result = new get_all_databases_result();
        try {
          result.success = iface.get_all_databases();
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_database<I extends Iface> extends org.apache.thrift.ProcessFunction<I, alter_database_args> {
      public alter_database() {
        super("alter_database");
      }

      public alter_database_args getEmptyArgsInstance() {
        return new alter_database_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public alter_database_result getResult(I iface, alter_database_args args) throws org.apache.thrift.TException {
        alter_database_result result = new alter_database_result();
        try {
          iface.alter_database(args.dbname, args.db);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (NoSuchObjectException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_type<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_type_args> {
      public get_type() {
        super("get_type");
      }

      public get_type_args getEmptyArgsInstance() {
        return new get_type_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_type_result getResult(I iface, get_type_args args) throws org.apache.thrift.TException {
        get_type_result result = new get_type_result();
        try {
          result.success = iface.get_type(args.name);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (NoSuchObjectException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_type<I extends Iface> extends org.apache.thrift.ProcessFunction<I, create_type_args> {
      public create_type() {
        super("create_type");
      }

      public create_type_args getEmptyArgsInstance() {
        return new create_type_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public create_type_result getResult(I iface, create_type_args args) throws org.apache.thrift.TException {
        create_type_result result = new create_type_result();
        try {
          result.success = iface.create_type(args.type);
          result.setSuccessIsSet(true);
        } catch (AlreadyExistsException o1) {
          result.o1 = o1;
        } catch (InvalidObjectException o2) {
          result.o2 = o2;
        } catch (MetaException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_type<I extends Iface> extends org.apache.thrift.ProcessFunction<I, drop_type_args> {
      public drop_type() {
        super("drop_type");
      }

      public drop_type_args getEmptyArgsInstance() {
        return new drop_type_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public drop_type_result getResult(I iface, drop_type_args args) throws org.apache.thrift.TException {
        drop_type_result result = new drop_type_result();
        try {
          result.success = iface.drop_type(args.type);
          result.setSuccessIsSet(true);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (NoSuchObjectException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_type_all<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_type_all_args> {
      public get_type_all() {
        super("get_type_all");
      }

      public get_type_all_args getEmptyArgsInstance() {
        return new get_type_all_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_type_all_result getResult(I iface, get_type_all_args args) throws org.apache.thrift.TException {
        get_type_all_result result = new get_type_all_result();
        try {
          result.success = iface.get_type_all(args.name);
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_fields<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_fields_args> {
      public get_fields() {
        super("get_fields");
      }

      public get_fields_args getEmptyArgsInstance() {
        return new get_fields_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_fields_result getResult(I iface, get_fields_args args) throws org.apache.thrift.TException {
        get_fields_result result = new get_fields_result();
        try {
          result.success = iface.get_fields(args.db_name, args.table_name);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (UnknownTableException o2) {
          result.o2 = o2;
        } catch (UnknownDBException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_fields_with_environment_context<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_fields_with_environment_context_args> {
      public get_fields_with_environment_context() {
        super("get_fields_with_environment_context");
      }

      public get_fields_with_environment_context_args getEmptyArgsInstance() {
        return new get_fields_with_environment_context_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_fields_with_environment_context_result getResult(I iface, get_fields_with_environment_context_args args) throws org.apache.thrift.TException {
        get_fields_with_environment_context_result result = new get_fields_with_environment_context_result();
        try {
          result.success = iface.get_fields_with_environment_context(args.db_name, args.table_name, args.environment_context);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (UnknownTableException o2) {
          result.o2 = o2;
        } catch (UnknownDBException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_schema<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_schema_args> {
      public get_schema() {
        super("get_schema");
      }

      public get_schema_args getEmptyArgsInstance() {
        return new get_schema_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_schema_result getResult(I iface, get_schema_args args) throws org.apache.thrift.TException {
        get_schema_result result = new get_schema_result();
        try {
          result.success = iface.get_schema(args.db_name, args.table_name);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (UnknownTableException o2) {
          result.o2 = o2;
        } catch (UnknownDBException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_schema_with_environment_context<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_schema_with_environment_context_args> {
      public get_schema_with_environment_context() {
        super("get_schema_with_environment_context");
      }

      public get_schema_with_environment_context_args getEmptyArgsInstance() {
        return new get_schema_with_environment_context_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_schema_with_environment_context_result getResult(I iface, get_schema_with_environment_context_args args) throws org.apache.thrift.TException {
        get_schema_with_environment_context_result result = new get_schema_with_environment_context_result();
        try {
          result.success = iface.get_schema_with_environment_context(args.db_name, args.table_name, args.environment_context);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (UnknownTableException o2) {
          result.o2 = o2;
        } catch (UnknownDBException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_table<I extends Iface> extends org.apache.thrift.ProcessFunction<I, create_table_args> {
      public create_table() {
        super("create_table");
      }

      public create_table_args getEmptyArgsInstance() {
        return new create_table_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public create_table_result getResult(I iface, create_table_args args) throws org.apache.thrift.TException {
        create_table_result result = new create_table_result();
        try {
          iface.create_table(args.tbl);
        } catch (AlreadyExistsException o1) {
          result.o1 = o1;
        } catch (InvalidObjectException o2) {
          result.o2 = o2;
        } catch (MetaException o3) {
          result.o3 = o3;
        } catch (NoSuchObjectException o4) {
          result.o4 = o4;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_table_with_environment_context<I extends Iface> extends org.apache.thrift.ProcessFunction<I, create_table_with_environment_context_args> {
      public create_table_with_environment_context() {
        super("create_table_with_environment_context");
      }

      public create_table_with_environment_context_args getEmptyArgsInstance() {
        return new create_table_with_environment_context_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public create_table_with_environment_context_result getResult(I iface, create_table_with_environment_context_args args) throws org.apache.thrift.TException {
        create_table_with_environment_context_result result = new create_table_with_environment_context_result();
        try {
          iface.create_table_with_environment_context(args.tbl, args.environment_context);
        } catch (AlreadyExistsException o1) {
          result.o1 = o1;
        } catch (InvalidObjectException o2) {
          result.o2 = o2;
        } catch (MetaException o3) {
          result.o3 = o3;
        } catch (NoSuchObjectException o4) {
          result.o4 = o4;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_table_with_constraints<I extends Iface> extends org.apache.thrift.ProcessFunction<I, create_table_with_constraints_args> {
      public create_table_with_constraints() {
        super("create_table_with_constraints");
      }

      public create_table_with_constraints_args getEmptyArgsInstance() {
        return new create_table_with_constraints_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public create_table_with_constraints_result getResult(I iface, create_table_with_constraints_args args) throws org.apache.thrift.TException {
        create_table_with_constraints_result result = new create_table_with_constraints_result();
        try {
          iface.create_table_with_constraints(args.tbl, args.primaryKeys, args.foreignKeys, args.uniqueConstraints, args.notNullConstraints, args.defaultConstraints, args.checkConstraints);
        } catch (AlreadyExistsException o1) {
          result.o1 = o1;
        } catch (InvalidObjectException o2) {
          result.o2 = o2;
        } catch (MetaException o3) {
          result.o3 = o3;
        } catch (NoSuchObjectException o4) {
          result.o4 = o4;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_constraint<I extends Iface> extends org.apache.thrift.ProcessFunction<I, drop_constraint_args> {
      public drop_constraint() {
        super("drop_constraint");
      }

      public drop_constraint_args getEmptyArgsInstance() {
        return new drop_constraint_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public drop_constraint_result getResult(I iface, drop_constraint_args args) throws org.apache.thrift.TException {
        drop_constraint_result result = new drop_constraint_result();
        try {
          iface.drop_constraint(args.req);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_primary_key<I extends Iface> extends org.apache.thrift.ProcessFunction<I, add_primary_key_args> {
      public add_primary_key() {
        super("add_primary_key");
      }

      public add_primary_key_args getEmptyArgsInstance() {
        return new add_primary_key_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public add_primary_key_result getResult(I iface, add_primary_key_args args) throws org.apache.thrift.TException {
        add_primary_key_result result = new add_primary_key_result();
        try {
          iface.add_primary_key(args.req);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_foreign_key<I extends Iface> extends org.apache.thrift.ProcessFunction<I, add_foreign_key_args> {
      public add_foreign_key() {
        super("add_foreign_key");
      }

      public add_foreign_key_args getEmptyArgsInstance() {
        return new add_foreign_key_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public add_foreign_key_result getResult(I iface, add_foreign_key_args args) throws org.apache.thrift.TException {
        add_foreign_key_result result = new add_foreign_key_result();
        try {
          iface.add_foreign_key(args.req);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_unique_constraint<I extends Iface> extends org.apache.thrift.ProcessFunction<I, add_unique_constraint_args> {
      public add_unique_constraint() {
        super("add_unique_constraint");
      }

      public add_unique_constraint_args getEmptyArgsInstance() {
        return new add_unique_constraint_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public add_unique_constraint_result getResult(I iface, add_unique_constraint_args args) throws org.apache.thrift.TException {
        add_unique_constraint_result result = new add_unique_constraint_result();
        try {
          iface.add_unique_constraint(args.req);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_not_null_constraint<I extends Iface> extends org.apache.thrift.ProcessFunction<I, add_not_null_constraint_args> {
      public add_not_null_constraint() {
        super("add_not_null_constraint");
      }

      public add_not_null_constraint_args getEmptyArgsInstance() {
        return new add_not_null_constraint_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public add_not_null_constraint_result getResult(I iface, add_not_null_constraint_args args) throws org.apache.thrift.TException {
        add_not_null_constraint_result result = new add_not_null_constraint_result();
        try {
          iface.add_not_null_constraint(args.req);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_default_constraint<I extends Iface> extends org.apache.thrift.ProcessFunction<I, add_default_constraint_args> {
      public add_default_constraint() {
        super("add_default_constraint");
      }

      public add_default_constraint_args getEmptyArgsInstance() {
        return new add_default_constraint_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public add_default_constraint_result getResult(I iface, add_default_constraint_args args) throws org.apache.thrift.TException {
        add_default_constraint_result result = new add_default_constraint_result();
        try {
          iface.add_default_constraint(args.req);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_check_constraint<I extends Iface> extends org.apache.thrift.ProcessFunction<I, add_check_constraint_args> {
      public add_check_constraint() {
        super("add_check_constraint");
      }

      public add_check_constraint_args getEmptyArgsInstance() {
        return new add_check_constraint_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public add_check_constraint_result getResult(I iface, add_check_constraint_args args) throws org.apache.thrift.TException {
        add_check_constraint_result result = new add_check_constraint_result();
        try {
          iface.add_check_constraint(args.req);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_table<I extends Iface> extends org.apache.thrift.ProcessFunction<I, drop_table_args> {
      public drop_table() {
        super("drop_table");
      }

      public drop_table_args getEmptyArgsInstance() {
        return new drop_table_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public drop_table_result getResult(I iface, drop_table_args args) throws org.apache.thrift.TException {
        drop_table_result result = new drop_table_result();
        try {
          iface.drop_table(args.dbname, args.name, args.deleteData);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_table_with_environment_context<I extends Iface> extends org.apache.thrift.ProcessFunction<I, drop_table_with_environment_context_args> {
      public drop_table_with_environment_context() {
        super("drop_table_with_environment_context");
      }

      public drop_table_with_environment_context_args getEmptyArgsInstance() {
        return new drop_table_with_environment_context_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public drop_table_with_environment_context_result getResult(I iface, drop_table_with_environment_context_args args) throws org.apache.thrift.TException {
        drop_table_with_environment_context_result result = new drop_table_with_environment_context_result();
        try {
          iface.drop_table_with_environment_context(args.dbname, args.name, args.deleteData, args.environment_context);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class truncate_table<I extends Iface> extends org.apache.thrift.ProcessFunction<I, truncate_table_args> {
      public truncate_table() {
        super("truncate_table");
      }

      public truncate_table_args getEmptyArgsInstance() {
        return new truncate_table_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public truncate_table_result getResult(I iface, truncate_table_args args) throws org.apache.thrift.TException {
        truncate_table_result result = new truncate_table_result();
        try {
          iface.truncate_table(args.dbName, args.tableName, args.partNames);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_tables<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_tables_args> {
      public get_tables() {
        super("get_tables");
      }

      public get_tables_args getEmptyArgsInstance() {
        return new get_tables_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_tables_result getResult(I iface, get_tables_args args) throws org.apache.thrift.TException {
        get_tables_result result = new get_tables_result();
        try {
          result.success = iface.get_tables(args.db_name, args.pattern);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_tables_by_type<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_tables_by_type_args> {
      public get_tables_by_type() {
        super("get_tables_by_type");
      }

      public get_tables_by_type_args getEmptyArgsInstance() {
        return new get_tables_by_type_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_tables_by_type_result getResult(I iface, get_tables_by_type_args args) throws org.apache.thrift.TException {
        get_tables_by_type_result result = new get_tables_by_type_result();
        try {
          result.success = iface.get_tables_by_type(args.db_name, args.pattern, args.tableType);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_materialized_views_for_rewriting<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_materialized_views_for_rewriting_args> {
      public get_materialized_views_for_rewriting() {
        super("get_materialized_views_for_rewriting");
      }

      public get_materialized_views_for_rewriting_args getEmptyArgsInstance() {
        return new get_materialized_views_for_rewriting_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_materialized_views_for_rewriting_result getResult(I iface, get_materialized_views_for_rewriting_args args) throws org.apache.thrift.TException {
        get_materialized_views_for_rewriting_result result = new get_materialized_views_for_rewriting_result();
        try {
          result.success = iface.get_materialized_views_for_rewriting(args.db_name);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_meta<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_table_meta_args> {
      public get_table_meta() {
        super("get_table_meta");
      }

      public get_table_meta_args getEmptyArgsInstance() {
        return new get_table_meta_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_table_meta_result getResult(I iface, get_table_meta_args args) throws org.apache.thrift.TException {
        get_table_meta_result result = new get_table_meta_result();
        try {
          result.success = iface.get_table_meta(args.db_patterns, args.tbl_patterns, args.tbl_types);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_all_tables<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_all_tables_args> {
      public get_all_tables() {
        super("get_all_tables");
      }

      public get_all_tables_args getEmptyArgsInstance() {
        return new get_all_tables_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_all_tables_result getResult(I iface, get_all_tables_args args) throws org.apache.thrift.TException {
        get_all_tables_result result = new get_all_tables_result();
        try {
          result.success = iface.get_all_tables(args.db_name);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_table_args> {
      public get_table() {
        super("get_table");
      }

      public get_table_args getEmptyArgsInstance() {
        return new get_table_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_table_result getResult(I iface, get_table_args args) throws org.apache.thrift.TException {
        get_table_result result = new get_table_result();
        try {
          result.success = iface.get_table(args.dbname, args.tbl_name);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (NoSuchObjectException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_objects_by_name<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_table_objects_by_name_args> {
      public get_table_objects_by_name() {
        super("get_table_objects_by_name");
      }

      public get_table_objects_by_name_args getEmptyArgsInstance() {
        return new get_table_objects_by_name_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_table_objects_by_name_result getResult(I iface, get_table_objects_by_name_args args) throws org.apache.thrift.TException {
        get_table_objects_by_name_result result = new get_table_objects_by_name_result();
        result.success = iface.get_table_objects_by_name(args.dbname, args.tbl_names);
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_req<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_table_req_args> {
      public get_table_req() {
        super("get_table_req");
      }

      public get_table_req_args getEmptyArgsInstance() {
        return new get_table_req_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_table_req_result getResult(I iface, get_table_req_args args) throws org.apache.thrift.TException {
        get_table_req_result result = new get_table_req_result();
        try {
          result.success = iface.get_table_req(args.req);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (NoSuchObjectException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_objects_by_name_req<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_table_objects_by_name_req_args> {
      public get_table_objects_by_name_req() {
        super("get_table_objects_by_name_req");
      }

      public get_table_objects_by_name_req_args getEmptyArgsInstance() {
        return new get_table_objects_by_name_req_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_table_objects_by_name_req_result getResult(I iface, get_table_objects_by_name_req_args args) throws org.apache.thrift.TException {
        get_table_objects_by_name_req_result result = new get_table_objects_by_name_req_result();
        try {
          result.success = iface.get_table_objects_by_name_req(args.req);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (InvalidOperationException o2) {
          result.o2 = o2;
        } catch (UnknownDBException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_materialization_invalidation_info<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_materialization_invalidation_info_args> {
      public get_materialization_invalidation_info() {
        super("get_materialization_invalidation_info");
      }

      public get_materialization_invalidation_info_args getEmptyArgsInstance() {
        return new get_materialization_invalidation_info_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_materialization_invalidation_info_result getResult(I iface, get_materialization_invalidation_info_args args) throws org.apache.thrift.TException {
        get_materialization_invalidation_info_result result = new get_materialization_invalidation_info_result();
        try {
          result.success = iface.get_materialization_invalidation_info(args.creation_metadata, args.validTxnList);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (InvalidOperationException o2) {
          result.o2 = o2;
        } catch (UnknownDBException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class update_creation_metadata<I extends Iface> extends org.apache.thrift.ProcessFunction<I, update_creation_metadata_args> {
      public update_creation_metadata() {
        super("update_creation_metadata");
      }

      public update_creation_metadata_args getEmptyArgsInstance() {
        return new update_creation_metadata_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public update_creation_metadata_result getResult(I iface, update_creation_metadata_args args) throws org.apache.thrift.TException {
        update_creation_metadata_result result = new update_creation_metadata_result();
        try {
          iface.update_creation_metadata(args.catName, args.dbname, args.tbl_name, args.creation_metadata);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (InvalidOperationException o2) {
          result.o2 = o2;
        } catch (UnknownDBException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_names_by_filter<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_table_names_by_filter_args> {
      public get_table_names_by_filter() {
        super("get_table_names_by_filter");
      }

      public get_table_names_by_filter_args getEmptyArgsInstance() {
        return new get_table_names_by_filter_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_table_names_by_filter_result getResult(I iface, get_table_names_by_filter_args args) throws org.apache.thrift.TException {
        get_table_names_by_filter_result result = new get_table_names_by_filter_result();
        try {
          result.success = iface.get_table_names_by_filter(args.dbname, args.filter, args.max_tables);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (InvalidOperationException o2) {
          result.o2 = o2;
        } catch (UnknownDBException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_table<I extends Iface> extends org.apache.thrift.ProcessFunction<I, alter_table_args> {
      public alter_table() {
        super("alter_table");
      }

      public alter_table_args getEmptyArgsInstance() {
        return new alter_table_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public alter_table_result getResult(I iface, alter_table_args args) throws org.apache.thrift.TException {
        alter_table_result result = new alter_table_result();
        try {
          iface.alter_table(args.dbname, args.tbl_name, args.new_tbl);
        } catch (InvalidOperationException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_table_with_environment_context<I extends Iface> extends org.apache.thrift.ProcessFunction<I, alter_table_with_environment_context_args> {
      public alter_table_with_environment_context() {
        super("alter_table_with_environment_context");
      }

      public alter_table_with_environment_context_args getEmptyArgsInstance() {
        return new alter_table_with_environment_context_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public alter_table_with_environment_context_result getResult(I iface, alter_table_with_environment_context_args args) throws org.apache.thrift.TException {
        alter_table_with_environment_context_result result = new alter_table_with_environment_context_result();
        try {
          iface.alter_table_with_environment_context(args.dbname, args.tbl_name, args.new_tbl, args.environment_context);
        } catch (InvalidOperationException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_table_with_cascade<I extends Iface> extends org.apache.thrift.ProcessFunction<I, alter_table_with_cascade_args> {
      public alter_table_with_cascade() {
        super("alter_table_with_cascade");
      }

      public alter_table_with_cascade_args getEmptyArgsInstance() {
        return new alter_table_with_cascade_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public alter_table_with_cascade_result getResult(I iface, alter_table_with_cascade_args args) throws org.apache.thrift.TException {
        alter_table_with_cascade_result result = new alter_table_with_cascade_result();
        try {
          iface.alter_table_with_cascade(args.dbname, args.tbl_name, args.new_tbl, args.cascade);
        } catch (InvalidOperationException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_partition<I extends Iface> extends org.apache.thrift.ProcessFunction<I, add_partition_args> {
      public add_partition() {
        super("add_partition");
      }

      public add_partition_args getEmptyArgsInstance() {
        return new add_partition_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public add_partition_result getResult(I iface, add_partition_args args) throws org.apache.thrift.TException {
        add_partition_result result = new add_partition_result();
        try {
          result.success = iface.add_partition(args.new_part);
        } catch (InvalidObjectException o1) {
          result.o1 = o1;
        } catch (AlreadyExistsException o2) {
          result.o2 = o2;
        } catch (MetaException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_partition_with_environment_context<I extends Iface> extends org.apache.thrift.ProcessFunction<I, add_partition_with_environment_context_args> {
      public add_partition_with_environment_context() {
        super("add_partition_with_environment_context");
      }

      public add_partition_with_environment_context_args getEmptyArgsInstance() {
        return new add_partition_with_environment_context_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public add_partition_with_environment_context_result getResult(I iface, add_partition_with_environment_context_args args) throws org.apache.thrift.TException {
        add_partition_with_environment_context_result result = new add_partition_with_environment_context_result();
        try {
          result.success = iface.add_partition_with_environment_context(args.new_part, args.environment_context);
        } catch (InvalidObjectException o1) {
          result.o1 = o1;
        } catch (AlreadyExistsException o2) {
          result.o2 = o2;
        } catch (MetaException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_partitions<I extends Iface> extends org.apache.thrift.ProcessFunction<I, add_partitions_args> {
      public add_partitions() {
        super("add_partitions");
      }

      public add_partitions_args getEmptyArgsInstance() {
        return new add_partitions_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public add_partitions_result getResult(I iface, add_partitions_args args) throws org.apache.thrift.TException {
        add_partitions_result result = new add_partitions_result();
        try {
          result.success = iface.add_partitions(args.new_parts);
          result.setSuccessIsSet(true);
        } catch (InvalidObjectException o1) {
          result.o1 = o1;
        } catch (AlreadyExistsException o2) {
          result.o2 = o2;
        } catch (MetaException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_partitions_pspec<I extends Iface> extends org.apache.thrift.ProcessFunction<I, add_partitions_pspec_args> {
      public add_partitions_pspec() {
        super("add_partitions_pspec");
      }

      public add_partitions_pspec_args getEmptyArgsInstance() {
        return new add_partitions_pspec_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public add_partitions_pspec_result getResult(I iface, add_partitions_pspec_args args) throws org.apache.thrift.TException {
        add_partitions_pspec_result result = new add_partitions_pspec_result();
        try {
          result.success = iface.add_partitions_pspec(args.new_parts);
          result.setSuccessIsSet(true);
        } catch (InvalidObjectException o1) {
          result.o1 = o1;
        } catch (AlreadyExistsException o2) {
          result.o2 = o2;
        } catch (MetaException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class append_partition<I extends Iface> extends org.apache.thrift.ProcessFunction<I, append_partition_args> {
      public append_partition() {
        super("append_partition");
      }

      public append_partition_args getEmptyArgsInstance() {
        return new append_partition_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public append_partition_result getResult(I iface, append_partition_args args) throws org.apache.thrift.TException {
        append_partition_result result = new append_partition_result();
        try {
          result.success = iface.append_partition(args.db_name, args.tbl_name, args.part_vals);
        } catch (InvalidObjectException o1) {
          result.o1 = o1;
        } catch (AlreadyExistsException o2) {
          result.o2 = o2;
        } catch (MetaException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_partitions_req<I extends Iface> extends org.apache.thrift.ProcessFunction<I, add_partitions_req_args> {
      public add_partitions_req() {
        super("add_partitions_req");
      }

      public add_partitions_req_args getEmptyArgsInstance() {
        return new add_partitions_req_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public add_partitions_req_result getResult(I iface, add_partitions_req_args args) throws org.apache.thrift.TException {
        add_partitions_req_result result = new add_partitions_req_result();
        try {
          result.success = iface.add_partitions_req(args.request);
        } catch (InvalidObjectException o1) {
          result.o1 = o1;
        } catch (AlreadyExistsException o2) {
          result.o2 = o2;
        } catch (MetaException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class append_partition_with_environment_context<I extends Iface> extends org.apache.thrift.ProcessFunction<I, append_partition_with_environment_context_args> {
      public append_partition_with_environment_context() {
        super("append_partition_with_environment_context");
      }

      public append_partition_with_environment_context_args getEmptyArgsInstance() {
        return new append_partition_with_environment_context_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public append_partition_with_environment_context_result getResult(I iface, append_partition_with_environment_context_args args) throws org.apache.thrift.TException {
        append_partition_with_environment_context_result result = new append_partition_with_environment_context_result();
        try {
          result.success = iface.append_partition_with_environment_context(args.db_name, args.tbl_name, args.part_vals, args.environment_context);
        } catch (InvalidObjectException o1) {
          result.o1 = o1;
        } catch (AlreadyExistsException o2) {
          result.o2 = o2;
        } catch (MetaException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class append_partition_by_name<I extends Iface> extends org.apache.thrift.ProcessFunction<I, append_partition_by_name_args> {
      public append_partition_by_name() {
        super("append_partition_by_name");
      }

      public append_partition_by_name_args getEmptyArgsInstance() {
        return new append_partition_by_name_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public append_partition_by_name_result getResult(I iface, append_partition_by_name_args args) throws org.apache.thrift.TException {
        append_partition_by_name_result result = new append_partition_by_name_result();
        try {
          result.success = iface.append_partition_by_name(args.db_name, args.tbl_name, args.part_name);
        } catch (InvalidObjectException o1) {
          result.o1 = o1;
        } catch (AlreadyExistsException o2) {
          result.o2 = o2;
        } catch (MetaException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class append_partition_by_name_with_environment_context<I extends Iface> extends org.apache.thrift.ProcessFunction<I, append_partition_by_name_with_environment_context_args> {
      public append_partition_by_name_with_environment_context() {
        super("append_partition_by_name_with_environment_context");
      }

      public append_partition_by_name_with_environment_context_args getEmptyArgsInstance() {
        return new append_partition_by_name_with_environment_context_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public append_partition_by_name_with_environment_context_result getResult(I iface, append_partition_by_name_with_environment_context_args args) throws org.apache.thrift.TException {
        append_partition_by_name_with_environment_context_result result = new append_partition_by_name_with_environment_context_result();
        try {
          result.success = iface.append_partition_by_name_with_environment_context(args.db_name, args.tbl_name, args.part_name, args.environment_context);
        } catch (InvalidObjectException o1) {
          result.o1 = o1;
        } catch (AlreadyExistsException o2) {
          result.o2 = o2;
        } catch (MetaException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_partition<I extends Iface> extends org.apache.thrift.ProcessFunction<I, drop_partition_args> {
      public drop_partition() {
        super("drop_partition");
      }

      public drop_partition_args getEmptyArgsInstance() {
        return new drop_partition_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public drop_partition_result getResult(I iface, drop_partition_args args) throws org.apache.thrift.TException {
        drop_partition_result result = new drop_partition_result();
        try {
          result.success = iface.drop_partition(args.db_name, args.tbl_name, args.part_vals, args.deleteData);
          result.setSuccessIsSet(true);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_partition_with_environment_context<I extends Iface> extends org.apache.thrift.ProcessFunction<I, drop_partition_with_environment_context_args> {
      public drop_partition_with_environment_context() {
        super("drop_partition_with_environment_context");
      }

      public drop_partition_with_environment_context_args getEmptyArgsInstance() {
        return new drop_partition_with_environment_context_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public drop_partition_with_environment_context_result getResult(I iface, drop_partition_with_environment_context_args args) throws org.apache.thrift.TException {
        drop_partition_with_environment_context_result result = new drop_partition_with_environment_context_result();
        try {
          result.success = iface.drop_partition_with_environment_context(args.db_name, args.tbl_name, args.part_vals, args.deleteData, args.environment_context);
          result.setSuccessIsSet(true);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_partition_by_name<I extends Iface> extends org.apache.thrift.ProcessFunction<I, drop_partition_by_name_args> {
      public drop_partition_by_name() {
        super("drop_partition_by_name");
      }

      public drop_partition_by_name_args getEmptyArgsInstance() {
        return new drop_partition_by_name_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public drop_partition_by_name_result getResult(I iface, drop_partition_by_name_args args) throws org.apache.thrift.TException {
        drop_partition_by_name_result result = new drop_partition_by_name_result();
        try {
          result.success = iface.drop_partition_by_name(args.db_name, args.tbl_name, args.part_name, args.deleteData);
          result.setSuccessIsSet(true);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_partition_by_name_with_environment_context<I extends Iface> extends org.apache.thrift.ProcessFunction<I, drop_partition_by_name_with_environment_context_args> {
      public drop_partition_by_name_with_environment_context() {
        super("drop_partition_by_name_with_environment_context");
      }

      public drop_partition_by_name_with_environment_context_args getEmptyArgsInstance() {
        return new drop_partition_by_name_with_environment_context_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public drop_partition_by_name_with_environment_context_result getResult(I iface, drop_partition_by_name_with_environment_context_args args) throws org.apache.thrift.TException {
        drop_partition_by_name_with_environment_context_result result = new drop_partition_by_name_with_environment_context_result();
        try {
          result.success = iface.drop_partition_by_name_with_environment_context(args.db_name, args.tbl_name, args.part_name, args.deleteData, args.environment_context);
          result.setSuccessIsSet(true);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_partitions_req<I extends Iface> extends org.apache.thrift.ProcessFunction<I, drop_partitions_req_args> {
      public drop_partitions_req() {
        super("drop_partitions_req");
      }

      public drop_partitions_req_args getEmptyArgsInstance() {
        return new drop_partitions_req_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public drop_partitions_req_result getResult(I iface, drop_partitions_req_args args) throws org.apache.thrift.TException {
        drop_partitions_req_result result = new drop_partitions_req_result();
        try {
          result.success = iface.drop_partitions_req(args.req);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_partition_args> {
      public get_partition() {
        super("get_partition");
      }

      public get_partition_args getEmptyArgsInstance() {
        return new get_partition_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_partition_result getResult(I iface, get_partition_args args) throws org.apache.thrift.TException {
        get_partition_result result = new get_partition_result();
        try {
          result.success = iface.get_partition(args.db_name, args.tbl_name, args.part_vals);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (NoSuchObjectException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class exchange_partition<I extends Iface> extends org.apache.thrift.ProcessFunction<I, exchange_partition_args> {
      public exchange_partition() {
        super("exchange_partition");
      }

      public exchange_partition_args getEmptyArgsInstance() {
        return new exchange_partition_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public exchange_partition_result getResult(I iface, exchange_partition_args args) throws org.apache.thrift.TException {
        exchange_partition_result result = new exchange_partition_result();
        try {
          result.success = iface.exchange_partition(args.partitionSpecs, args.source_db, args.source_table_name, args.dest_db, args.dest_table_name);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (NoSuchObjectException o2) {
          result.o2 = o2;
        } catch (InvalidObjectException o3) {
          result.o3 = o3;
        } catch (InvalidInputException o4) {
          result.o4 = o4;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class exchange_partitions<I extends Iface> extends org.apache.thrift.ProcessFunction<I, exchange_partitions_args> {
      public exchange_partitions() {
        super("exchange_partitions");
      }

      public exchange_partitions_args getEmptyArgsInstance() {
        return new exchange_partitions_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public exchange_partitions_result getResult(I iface, exchange_partitions_args args) throws org.apache.thrift.TException {
        exchange_partitions_result result = new exchange_partitions_result();
        try {
          result.success = iface.exchange_partitions(args.partitionSpecs, args.source_db, args.source_table_name, args.dest_db, args.dest_table_name);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (NoSuchObjectException o2) {
          result.o2 = o2;
        } catch (InvalidObjectException o3) {
          result.o3 = o3;
        } catch (InvalidInputException o4) {
          result.o4 = o4;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition_with_auth<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_partition_with_auth_args> {
      public get_partition_with_auth() {
        super("get_partition_with_auth");
      }

      public get_partition_with_auth_args getEmptyArgsInstance() {
        return new get_partition_with_auth_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_partition_with_auth_result getResult(I iface, get_partition_with_auth_args args) throws org.apache.thrift.TException {
        get_partition_with_auth_result result = new get_partition_with_auth_result();
        try {
          result.success = iface.get_partition_with_auth(args.db_name, args.tbl_name, args.part_vals, args.user_name, args.group_names);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (NoSuchObjectException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition_by_name<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_partition_by_name_args> {
      public get_partition_by_name() {
        super("get_partition_by_name");
      }

      public get_partition_by_name_args getEmptyArgsInstance() {
        return new get_partition_by_name_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_partition_by_name_result getResult(I iface, get_partition_by_name_args args) throws org.apache.thrift.TException {
        get_partition_by_name_result result = new get_partition_by_name_result();
        try {
          result.success = iface.get_partition_by_name(args.db_name, args.tbl_name, args.part_name);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (NoSuchObjectException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_partitions_args> {
      public get_partitions() {
        super("get_partitions");
      }

      public get_partitions_args getEmptyArgsInstance() {
        return new get_partitions_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_partitions_result getResult(I iface, get_partitions_args args) throws org.apache.thrift.TException {
        get_partitions_result result = new get_partitions_result();
        try {
          result.success = iface.get_partitions(args.db_name, args.tbl_name, args.max_parts);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_with_auth<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_partitions_with_auth_args> {
      public get_partitions_with_auth() {
        super("get_partitions_with_auth");
      }

      public get_partitions_with_auth_args getEmptyArgsInstance() {
        return new get_partitions_with_auth_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_partitions_with_auth_result getResult(I iface, get_partitions_with_auth_args args) throws org.apache.thrift.TException {
        get_partitions_with_auth_result result = new get_partitions_with_auth_result();
        try {
          result.success = iface.get_partitions_with_auth(args.db_name, args.tbl_name, args.max_parts, args.user_name, args.group_names);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_pspec<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_partitions_pspec_args> {
      public get_partitions_pspec() {
        super("get_partitions_pspec");
      }

      public get_partitions_pspec_args getEmptyArgsInstance() {
        return new get_partitions_pspec_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_partitions_pspec_result getResult(I iface, get_partitions_pspec_args args) throws org.apache.thrift.TException {
        get_partitions_pspec_result result = new get_partitions_pspec_result();
        try {
          result.success = iface.get_partitions_pspec(args.db_name, args.tbl_name, args.max_parts);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition_names<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_partition_names_args> {
      public get_partition_names() {
        super("get_partition_names");
      }

      public get_partition_names_args getEmptyArgsInstance() {
        return new get_partition_names_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_partition_names_result getResult(I iface, get_partition_names_args args) throws org.apache.thrift.TException {
        get_partition_names_result result = new get_partition_names_result();
        try {
          result.success = iface.get_partition_names(args.db_name, args.tbl_name, args.max_parts);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition_values<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_partition_values_args> {
      public get_partition_values() {
        super("get_partition_values");
      }

      public get_partition_values_args getEmptyArgsInstance() {
        return new get_partition_values_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_partition_values_result getResult(I iface, get_partition_values_args args) throws org.apache.thrift.TException {
        get_partition_values_result result = new get_partition_values_result();
        try {
          result.success = iface.get_partition_values(args.request);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (NoSuchObjectException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_ps<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_partitions_ps_args> {
      public get_partitions_ps() {
        super("get_partitions_ps");
      }

      public get_partitions_ps_args getEmptyArgsInstance() {
        return new get_partitions_ps_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_partitions_ps_result getResult(I iface, get_partitions_ps_args args) throws org.apache.thrift.TException {
        get_partitions_ps_result result = new get_partitions_ps_result();
        try {
          result.success = iface.get_partitions_ps(args.db_name, args.tbl_name, args.part_vals, args.max_parts);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (NoSuchObjectException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_ps_with_auth<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_partitions_ps_with_auth_args> {
      public get_partitions_ps_with_auth() {
        super("get_partitions_ps_with_auth");
      }

      public get_partitions_ps_with_auth_args getEmptyArgsInstance() {
        return new get_partitions_ps_with_auth_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_partitions_ps_with_auth_result getResult(I iface, get_partitions_ps_with_auth_args args) throws org.apache.thrift.TException {
        get_partitions_ps_with_auth_result result = new get_partitions_ps_with_auth_result();
        try {
          result.success = iface.get_partitions_ps_with_auth(args.db_name, args.tbl_name, args.part_vals, args.max_parts, args.user_name, args.group_names);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition_names_ps<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_partition_names_ps_args> {
      public get_partition_names_ps() {
        super("get_partition_names_ps");
      }

      public get_partition_names_ps_args getEmptyArgsInstance() {
        return new get_partition_names_ps_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_partition_names_ps_result getResult(I iface, get_partition_names_ps_args args) throws org.apache.thrift.TException {
        get_partition_names_ps_result result = new get_partition_names_ps_result();
        try {
          result.success = iface.get_partition_names_ps(args.db_name, args.tbl_name, args.part_vals, args.max_parts);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (NoSuchObjectException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_by_filter<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_partitions_by_filter_args> {
      public get_partitions_by_filter() {
        super("get_partitions_by_filter");
      }

      public get_partitions_by_filter_args getEmptyArgsInstance() {
        return new get_partitions_by_filter_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_partitions_by_filter_result getResult(I iface, get_partitions_by_filter_args args) throws org.apache.thrift.TException {
        get_partitions_by_filter_result result = new get_partitions_by_filter_result();
        try {
          result.success = iface.get_partitions_by_filter(args.db_name, args.tbl_name, args.filter, args.max_parts);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (NoSuchObjectException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_part_specs_by_filter<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_part_specs_by_filter_args> {
      public get_part_specs_by_filter() {
        super("get_part_specs_by_filter");
      }

      public get_part_specs_by_filter_args getEmptyArgsInstance() {
        return new get_part_specs_by_filter_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_part_specs_by_filter_result getResult(I iface, get_part_specs_by_filter_args args) throws org.apache.thrift.TException {
        get_part_specs_by_filter_result result = new get_part_specs_by_filter_result();
        try {
          result.success = iface.get_part_specs_by_filter(args.db_name, args.tbl_name, args.filter, args.max_parts);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (NoSuchObjectException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_by_expr<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_partitions_by_expr_args> {
      public get_partitions_by_expr() {
        super("get_partitions_by_expr");
      }

      public get_partitions_by_expr_args getEmptyArgsInstance() {
        return new get_partitions_by_expr_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_partitions_by_expr_result getResult(I iface, get_partitions_by_expr_args args) throws org.apache.thrift.TException {
        get_partitions_by_expr_result result = new get_partitions_by_expr_result();
        try {
          result.success = iface.get_partitions_by_expr(args.req);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (NoSuchObjectException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_num_partitions_by_filter<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_num_partitions_by_filter_args> {
      public get_num_partitions_by_filter() {
        super("get_num_partitions_by_filter");
      }

      public get_num_partitions_by_filter_args getEmptyArgsInstance() {
        return new get_num_partitions_by_filter_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_num_partitions_by_filter_result getResult(I iface, get_num_partitions_by_filter_args args) throws org.apache.thrift.TException {
        get_num_partitions_by_filter_result result = new get_num_partitions_by_filter_result();
        try {
          result.success = iface.get_num_partitions_by_filter(args.db_name, args.tbl_name, args.filter);
          result.setSuccessIsSet(true);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (NoSuchObjectException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_by_names<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_partitions_by_names_args> {
      public get_partitions_by_names() {
        super("get_partitions_by_names");
      }

      public get_partitions_by_names_args getEmptyArgsInstance() {
        return new get_partitions_by_names_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_partitions_by_names_result getResult(I iface, get_partitions_by_names_args args) throws org.apache.thrift.TException {
        get_partitions_by_names_result result = new get_partitions_by_names_result();
        try {
          result.success = iface.get_partitions_by_names(args.db_name, args.tbl_name, args.names);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (NoSuchObjectException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_partition<I extends Iface> extends org.apache.thrift.ProcessFunction<I, alter_partition_args> {
      public alter_partition() {
        super("alter_partition");
      }

      public alter_partition_args getEmptyArgsInstance() {
        return new alter_partition_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public alter_partition_result getResult(I iface, alter_partition_args args) throws org.apache.thrift.TException {
        alter_partition_result result = new alter_partition_result();
        try {
          iface.alter_partition(args.db_name, args.tbl_name, args.new_part);
        } catch (InvalidOperationException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_partitions<I extends Iface> extends org.apache.thrift.ProcessFunction<I, alter_partitions_args> {
      public alter_partitions() {
        super("alter_partitions");
      }

      public alter_partitions_args getEmptyArgsInstance() {
        return new alter_partitions_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public alter_partitions_result getResult(I iface, alter_partitions_args args) throws org.apache.thrift.TException {
        alter_partitions_result result = new alter_partitions_result();
        try {
          iface.alter_partitions(args.db_name, args.tbl_name, args.new_parts);
        } catch (InvalidOperationException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_partitions_with_environment_context<I extends Iface> extends org.apache.thrift.ProcessFunction<I, alter_partitions_with_environment_context_args> {
      public alter_partitions_with_environment_context() {
        super("alter_partitions_with_environment_context");
      }

      public alter_partitions_with_environment_context_args getEmptyArgsInstance() {
        return new alter_partitions_with_environment_context_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public alter_partitions_with_environment_context_result getResult(I iface, alter_partitions_with_environment_context_args args) throws org.apache.thrift.TException {
        alter_partitions_with_environment_context_result result = new alter_partitions_with_environment_context_result();
        try {
          iface.alter_partitions_with_environment_context(args.db_name, args.tbl_name, args.new_parts, args.environment_context);
        } catch (InvalidOperationException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_partition_with_environment_context<I extends Iface> extends org.apache.thrift.ProcessFunction<I, alter_partition_with_environment_context_args> {
      public alter_partition_with_environment_context() {
        super("alter_partition_with_environment_context");
      }

      public alter_partition_with_environment_context_args getEmptyArgsInstance() {
        return new alter_partition_with_environment_context_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public alter_partition_with_environment_context_result getResult(I iface, alter_partition_with_environment_context_args args) throws org.apache.thrift.TException {
        alter_partition_with_environment_context_result result = new alter_partition_with_environment_context_result();
        try {
          iface.alter_partition_with_environment_context(args.db_name, args.tbl_name, args.new_part, args.environment_context);
        } catch (InvalidOperationException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class rename_partition<I extends Iface> extends org.apache.thrift.ProcessFunction<I, rename_partition_args> {
      public rename_partition() {
        super("rename_partition");
      }

      public rename_partition_args getEmptyArgsInstance() {
        return new rename_partition_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public rename_partition_result getResult(I iface, rename_partition_args args) throws org.apache.thrift.TException {
        rename_partition_result result = new rename_partition_result();
        try {
          iface.rename_partition(args.db_name, args.tbl_name, args.part_vals, args.new_part);
        } catch (InvalidOperationException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class partition_name_has_valid_characters<I extends Iface> extends org.apache.thrift.ProcessFunction<I, partition_name_has_valid_characters_args> {
      public partition_name_has_valid_characters() {
        super("partition_name_has_valid_characters");
      }

      public partition_name_has_valid_characters_args getEmptyArgsInstance() {
        return new partition_name_has_valid_characters_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public partition_name_has_valid_characters_result getResult(I iface, partition_name_has_valid_characters_args args) throws org.apache.thrift.TException {
        partition_name_has_valid_characters_result result = new partition_name_has_valid_characters_result();
        try {
          result.success = iface.partition_name_has_valid_characters(args.part_vals, args.throw_exception);
          result.setSuccessIsSet(true);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_config_value<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_config_value_args> {
      public get_config_value() {
        super("get_config_value");
      }

      public get_config_value_args getEmptyArgsInstance() {
        return new get_config_value_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_config_value_result getResult(I iface, get_config_value_args args) throws org.apache.thrift.TException {
        get_config_value_result result = new get_config_value_result();
        try {
          result.success = iface.get_config_value(args.name, args.defaultValue);
        } catch (ConfigValSecurityException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class partition_name_to_vals<I extends Iface> extends org.apache.thrift.ProcessFunction<I, partition_name_to_vals_args> {
      public partition_name_to_vals() {
        super("partition_name_to_vals");
      }

      public partition_name_to_vals_args getEmptyArgsInstance() {
        return new partition_name_to_vals_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public partition_name_to_vals_result getResult(I iface, partition_name_to_vals_args args) throws org.apache.thrift.TException {
        partition_name_to_vals_result result = new partition_name_to_vals_result();
        try {
          result.success = iface.partition_name_to_vals(args.part_name);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class partition_name_to_spec<I extends Iface> extends org.apache.thrift.ProcessFunction<I, partition_name_to_spec_args> {
      public partition_name_to_spec() {
        super("partition_name_to_spec");
      }

      public partition_name_to_spec_args getEmptyArgsInstance() {
        return new partition_name_to_spec_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public partition_name_to_spec_result getResult(I iface, partition_name_to_spec_args args) throws org.apache.thrift.TException {
        partition_name_to_spec_result result = new partition_name_to_spec_result();
        try {
          result.success = iface.partition_name_to_spec(args.part_name);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class markPartitionForEvent<I extends Iface> extends org.apache.thrift.ProcessFunction<I, markPartitionForEvent_args> {
      public markPartitionForEvent() {
        super("markPartitionForEvent");
      }

      public markPartitionForEvent_args getEmptyArgsInstance() {
        return new markPartitionForEvent_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public markPartitionForEvent_result getResult(I iface, markPartitionForEvent_args args) throws org.apache.thrift.TException {
        markPartitionForEvent_result result = new markPartitionForEvent_result();
        try {
          iface.markPartitionForEvent(args.db_name, args.tbl_name, args.part_vals, args.eventType);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (NoSuchObjectException o2) {
          result.o2 = o2;
        } catch (UnknownDBException o3) {
          result.o3 = o3;
        } catch (UnknownTableException o4) {
          result.o4 = o4;
        } catch (UnknownPartitionException o5) {
          result.o5 = o5;
        } catch (InvalidPartitionException o6) {
          result.o6 = o6;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class isPartitionMarkedForEvent<I extends Iface> extends org.apache.thrift.ProcessFunction<I, isPartitionMarkedForEvent_args> {
      public isPartitionMarkedForEvent() {
        super("isPartitionMarkedForEvent");
      }

      public isPartitionMarkedForEvent_args getEmptyArgsInstance() {
        return new isPartitionMarkedForEvent_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public isPartitionMarkedForEvent_result getResult(I iface, isPartitionMarkedForEvent_args args) throws org.apache.thrift.TException {
        isPartitionMarkedForEvent_result result = new isPartitionMarkedForEvent_result();
        try {
          result.success = iface.isPartitionMarkedForEvent(args.db_name, args.tbl_name, args.part_vals, args.eventType);
          result.setSuccessIsSet(true);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (NoSuchObjectException o2) {
          result.o2 = o2;
        } catch (UnknownDBException o3) {
          result.o3 = o3;
        } catch (UnknownTableException o4) {
          result.o4 = o4;
        } catch (UnknownPartitionException o5) {
          result.o5 = o5;
        } catch (InvalidPartitionException o6) {
          result.o6 = o6;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_primary_keys<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_primary_keys_args> {
      public get_primary_keys() {
        super("get_primary_keys");
      }

      public get_primary_keys_args getEmptyArgsInstance() {
        return new get_primary_keys_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_primary_keys_result getResult(I iface, get_primary_keys_args args) throws org.apache.thrift.TException {
        get_primary_keys_result result = new get_primary_keys_result();
        try {
          result.success = iface.get_primary_keys(args.request);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (NoSuchObjectException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_foreign_keys<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_foreign_keys_args> {
      public get_foreign_keys() {
        super("get_foreign_keys");
      }

      public get_foreign_keys_args getEmptyArgsInstance() {
        return new get_foreign_keys_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_foreign_keys_result getResult(I iface, get_foreign_keys_args args) throws org.apache.thrift.TException {
        get_foreign_keys_result result = new get_foreign_keys_result();
        try {
          result.success = iface.get_foreign_keys(args.request);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (NoSuchObjectException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_unique_constraints<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_unique_constraints_args> {
      public get_unique_constraints() {
        super("get_unique_constraints");
      }

      public get_unique_constraints_args getEmptyArgsInstance() {
        return new get_unique_constraints_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_unique_constraints_result getResult(I iface, get_unique_constraints_args args) throws org.apache.thrift.TException {
        get_unique_constraints_result result = new get_unique_constraints_result();
        try {
          result.success = iface.get_unique_constraints(args.request);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (NoSuchObjectException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_not_null_constraints<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_not_null_constraints_args> {
      public get_not_null_constraints() {
        super("get_not_null_constraints");
      }

      public get_not_null_constraints_args getEmptyArgsInstance() {
        return new get_not_null_constraints_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_not_null_constraints_result getResult(I iface, get_not_null_constraints_args args) throws org.apache.thrift.TException {
        get_not_null_constraints_result result = new get_not_null_constraints_result();
        try {
          result.success = iface.get_not_null_constraints(args.request);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (NoSuchObjectException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_default_constraints<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_default_constraints_args> {
      public get_default_constraints() {
        super("get_default_constraints");
      }

      public get_default_constraints_args getEmptyArgsInstance() {
        return new get_default_constraints_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_default_constraints_result getResult(I iface, get_default_constraints_args args) throws org.apache.thrift.TException {
        get_default_constraints_result result = new get_default_constraints_result();
        try {
          result.success = iface.get_default_constraints(args.request);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (NoSuchObjectException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_check_constraints<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_check_constraints_args> {
      public get_check_constraints() {
        super("get_check_constraints");
      }

      public get_check_constraints_args getEmptyArgsInstance() {
        return new get_check_constraints_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_check_constraints_result getResult(I iface, get_check_constraints_args args) throws org.apache.thrift.TException {
        get_check_constraints_result result = new get_check_constraints_result();
        try {
          result.success = iface.get_check_constraints(args.request);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (NoSuchObjectException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class update_table_column_statistics<I extends Iface> extends org.apache.thrift.ProcessFunction<I, update_table_column_statistics_args> {
      public update_table_column_statistics() {
        super("update_table_column_statistics");
      }

      public update_table_column_statistics_args getEmptyArgsInstance() {
        return new update_table_column_statistics_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public update_table_column_statistics_result getResult(I iface, update_table_column_statistics_args args) throws org.apache.thrift.TException {
        update_table_column_statistics_result result = new update_table_column_statistics_result();
        try {
          result.success = iface.update_table_column_statistics(args.stats_obj);
          result.setSuccessIsSet(true);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (InvalidObjectException o2) {
          result.o2 = o2;
        } catch (MetaException o3) {
          result.o3 = o3;
        } catch (InvalidInputException o4) {
          result.o4 = o4;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class update_partition_column_statistics<I extends Iface> extends org.apache.thrift.ProcessFunction<I, update_partition_column_statistics_args> {
      public update_partition_column_statistics() {
        super("update_partition_column_statistics");
      }

      public update_partition_column_statistics_args getEmptyArgsInstance() {
        return new update_partition_column_statistics_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public update_partition_column_statistics_result getResult(I iface, update_partition_column_statistics_args args) throws org.apache.thrift.TException {
        update_partition_column_statistics_result result = new update_partition_column_statistics_result();
        try {
          result.success = iface.update_partition_column_statistics(args.stats_obj);
          result.setSuccessIsSet(true);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (InvalidObjectException o2) {
          result.o2 = o2;
        } catch (MetaException o3) {
          result.o3 = o3;
        } catch (InvalidInputException o4) {
          result.o4 = o4;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_column_statistics<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_table_column_statistics_args> {
      public get_table_column_statistics() {
        super("get_table_column_statistics");
      }

      public get_table_column_statistics_args getEmptyArgsInstance() {
        return new get_table_column_statistics_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_table_column_statistics_result getResult(I iface, get_table_column_statistics_args args) throws org.apache.thrift.TException {
        get_table_column_statistics_result result = new get_table_column_statistics_result();
        try {
          result.success = iface.get_table_column_statistics(args.db_name, args.tbl_name, args.col_name);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        } catch (InvalidInputException o3) {
          result.o3 = o3;
        } catch (InvalidObjectException o4) {
          result.o4 = o4;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition_column_statistics<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_partition_column_statistics_args> {
      public get_partition_column_statistics() {
        super("get_partition_column_statistics");
      }

      public get_partition_column_statistics_args getEmptyArgsInstance() {
        return new get_partition_column_statistics_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_partition_column_statistics_result getResult(I iface, get_partition_column_statistics_args args) throws org.apache.thrift.TException {
        get_partition_column_statistics_result result = new get_partition_column_statistics_result();
        try {
          result.success = iface.get_partition_column_statistics(args.db_name, args.tbl_name, args.part_name, args.col_name);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        } catch (InvalidInputException o3) {
          result.o3 = o3;
        } catch (InvalidObjectException o4) {
          result.o4 = o4;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_statistics_req<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_table_statistics_req_args> {
      public get_table_statistics_req() {
        super("get_table_statistics_req");
      }

      public get_table_statistics_req_args getEmptyArgsInstance() {
        return new get_table_statistics_req_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_table_statistics_req_result getResult(I iface, get_table_statistics_req_args args) throws org.apache.thrift.TException {
        get_table_statistics_req_result result = new get_table_statistics_req_result();
        try {
          result.success = iface.get_table_statistics_req(args.request);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_statistics_req<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_partitions_statistics_req_args> {
      public get_partitions_statistics_req() {
        super("get_partitions_statistics_req");
      }

      public get_partitions_statistics_req_args getEmptyArgsInstance() {
        return new get_partitions_statistics_req_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_partitions_statistics_req_result getResult(I iface, get_partitions_statistics_req_args args) throws org.apache.thrift.TException {
        get_partitions_statistics_req_result result = new get_partitions_statistics_req_result();
        try {
          result.success = iface.get_partitions_statistics_req(args.request);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_aggr_stats_for<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_aggr_stats_for_args> {
      public get_aggr_stats_for() {
        super("get_aggr_stats_for");
      }

      public get_aggr_stats_for_args getEmptyArgsInstance() {
        return new get_aggr_stats_for_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_aggr_stats_for_result getResult(I iface, get_aggr_stats_for_args args) throws org.apache.thrift.TException {
        get_aggr_stats_for_result result = new get_aggr_stats_for_result();
        try {
          result.success = iface.get_aggr_stats_for(args.request);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class set_aggr_stats_for<I extends Iface> extends org.apache.thrift.ProcessFunction<I, set_aggr_stats_for_args> {
      public set_aggr_stats_for() {
        super("set_aggr_stats_for");
      }

      public set_aggr_stats_for_args getEmptyArgsInstance() {
        return new set_aggr_stats_for_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public set_aggr_stats_for_result getResult(I iface, set_aggr_stats_for_args args) throws org.apache.thrift.TException {
        set_aggr_stats_for_result result = new set_aggr_stats_for_result();
        try {
          result.success = iface.set_aggr_stats_for(args.request);
          result.setSuccessIsSet(true);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (InvalidObjectException o2) {
          result.o2 = o2;
        } catch (MetaException o3) {
          result.o3 = o3;
        } catch (InvalidInputException o4) {
          result.o4 = o4;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class delete_partition_column_statistics<I extends Iface> extends org.apache.thrift.ProcessFunction<I, delete_partition_column_statistics_args> {
      public delete_partition_column_statistics() {
        super("delete_partition_column_statistics");
      }

      public delete_partition_column_statistics_args getEmptyArgsInstance() {
        return new delete_partition_column_statistics_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public delete_partition_column_statistics_result getResult(I iface, delete_partition_column_statistics_args args) throws org.apache.thrift.TException {
        delete_partition_column_statistics_result result = new delete_partition_column_statistics_result();
        try {
          result.success = iface.delete_partition_column_statistics(args.db_name, args.tbl_name, args.part_name, args.col_name);
          result.setSuccessIsSet(true);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        } catch (InvalidObjectException o3) {
          result.o3 = o3;
        } catch (InvalidInputException o4) {
          result.o4 = o4;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class delete_table_column_statistics<I extends Iface> extends org.apache.thrift.ProcessFunction<I, delete_table_column_statistics_args> {
      public delete_table_column_statistics() {
        super("delete_table_column_statistics");
      }

      public delete_table_column_statistics_args getEmptyArgsInstance() {
        return new delete_table_column_statistics_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public delete_table_column_statistics_result getResult(I iface, delete_table_column_statistics_args args) throws org.apache.thrift.TException {
        delete_table_column_statistics_result result = new delete_table_column_statistics_result();
        try {
          result.success = iface.delete_table_column_statistics(args.db_name, args.tbl_name, args.col_name);
          result.setSuccessIsSet(true);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        } catch (InvalidObjectException o3) {
          result.o3 = o3;
        } catch (InvalidInputException o4) {
          result.o4 = o4;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_function<I extends Iface> extends org.apache.thrift.ProcessFunction<I, create_function_args> {
      public create_function() {
        super("create_function");
      }

      public create_function_args getEmptyArgsInstance() {
        return new create_function_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public create_function_result getResult(I iface, create_function_args args) throws org.apache.thrift.TException {
        create_function_result result = new create_function_result();
        try {
          iface.create_function(args.func);
        } catch (AlreadyExistsException o1) {
          result.o1 = o1;
        } catch (InvalidObjectException o2) {
          result.o2 = o2;
        } catch (MetaException o3) {
          result.o3 = o3;
        } catch (NoSuchObjectException o4) {
          result.o4 = o4;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_function<I extends Iface> extends org.apache.thrift.ProcessFunction<I, drop_function_args> {
      public drop_function() {
        super("drop_function");
      }

      public drop_function_args getEmptyArgsInstance() {
        return new drop_function_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public drop_function_result getResult(I iface, drop_function_args args) throws org.apache.thrift.TException {
        drop_function_result result = new drop_function_result();
        try {
          iface.drop_function(args.dbName, args.funcName);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_function<I extends Iface> extends org.apache.thrift.ProcessFunction<I, alter_function_args> {
      public alter_function() {
        super("alter_function");
      }

      public alter_function_args getEmptyArgsInstance() {
        return new alter_function_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public alter_function_result getResult(I iface, alter_function_args args) throws org.apache.thrift.TException {
        alter_function_result result = new alter_function_result();
        try {
          iface.alter_function(args.dbName, args.funcName, args.newFunc);
        } catch (InvalidOperationException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_functions<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_functions_args> {
      public get_functions() {
        super("get_functions");
      }

      public get_functions_args getEmptyArgsInstance() {
        return new get_functions_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_functions_result getResult(I iface, get_functions_args args) throws org.apache.thrift.TException {
        get_functions_result result = new get_functions_result();
        try {
          result.success = iface.get_functions(args.dbName, args.pattern);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_function<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_function_args> {
      public get_function() {
        super("get_function");
      }

      public get_function_args getEmptyArgsInstance() {
        return new get_function_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_function_result getResult(I iface, get_function_args args) throws org.apache.thrift.TException {
        get_function_result result = new get_function_result();
        try {
          result.success = iface.get_function(args.dbName, args.funcName);
        } catch (MetaException o1) {
          result.o1 = o1;
        } catch (NoSuchObjectException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_all_functions<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_all_functions_args> {
      public get_all_functions() {
        super("get_all_functions");
      }

      public get_all_functions_args getEmptyArgsInstance() {
        return new get_all_functions_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_all_functions_result getResult(I iface, get_all_functions_args args) throws org.apache.thrift.TException {
        get_all_functions_result result = new get_all_functions_result();
        try {
          result.success = iface.get_all_functions();
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_role<I extends Iface> extends org.apache.thrift.ProcessFunction<I, create_role_args> {
      public create_role() {
        super("create_role");
      }

      public create_role_args getEmptyArgsInstance() {
        return new create_role_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public create_role_result getResult(I iface, create_role_args args) throws org.apache.thrift.TException {
        create_role_result result = new create_role_result();
        try {
          result.success = iface.create_role(args.role);
          result.setSuccessIsSet(true);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_role<I extends Iface> extends org.apache.thrift.ProcessFunction<I, drop_role_args> {
      public drop_role() {
        super("drop_role");
      }

      public drop_role_args getEmptyArgsInstance() {
        return new drop_role_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public drop_role_result getResult(I iface, drop_role_args args) throws org.apache.thrift.TException {
        drop_role_result result = new drop_role_result();
        try {
          result.success = iface.drop_role(args.role_name);
          result.setSuccessIsSet(true);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_role_names<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_role_names_args> {
      public get_role_names() {
        super("get_role_names");
      }

      public get_role_names_args getEmptyArgsInstance() {
        return new get_role_names_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_role_names_result getResult(I iface, get_role_names_args args) throws org.apache.thrift.TException {
        get_role_names_result result = new get_role_names_result();
        try {
          result.success = iface.get_role_names();
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class grant_role<I extends Iface> extends org.apache.thrift.ProcessFunction<I, grant_role_args> {
      public grant_role() {
        super("grant_role");
      }

      public grant_role_args getEmptyArgsInstance() {
        return new grant_role_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public grant_role_result getResult(I iface, grant_role_args args) throws org.apache.thrift.TException {
        grant_role_result result = new grant_role_result();
        try {
          result.success = iface.grant_role(args.role_name, args.principal_name, args.principal_type, args.grantor, args.grantorType, args.grant_option);
          result.setSuccessIsSet(true);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class revoke_role<I extends Iface> extends org.apache.thrift.ProcessFunction<I, revoke_role_args> {
      public revoke_role() {
        super("revoke_role");
      }

      public revoke_role_args getEmptyArgsInstance() {
        return new revoke_role_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public revoke_role_result getResult(I iface, revoke_role_args args) throws org.apache.thrift.TException {
        revoke_role_result result = new revoke_role_result();
        try {
          result.success = iface.revoke_role(args.role_name, args.principal_name, args.principal_type);
          result.setSuccessIsSet(true);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class list_roles<I extends Iface> extends org.apache.thrift.ProcessFunction<I, list_roles_args> {
      public list_roles() {
        super("list_roles");
      }

      public list_roles_args getEmptyArgsInstance() {
        return new list_roles_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public list_roles_result getResult(I iface, list_roles_args args) throws org.apache.thrift.TException {
        list_roles_result result = new list_roles_result();
        try {
          result.success = iface.list_roles(args.principal_name, args.principal_type);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class grant_revoke_role<I extends Iface> extends org.apache.thrift.ProcessFunction<I, grant_revoke_role_args> {
      public grant_revoke_role() {
        super("grant_revoke_role");
      }

      public grant_revoke_role_args getEmptyArgsInstance() {
        return new grant_revoke_role_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public grant_revoke_role_result getResult(I iface, grant_revoke_role_args args) throws org.apache.thrift.TException {
        grant_revoke_role_result result = new grant_revoke_role_result();
        try {
          result.success = iface.grant_revoke_role(args.request);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_principals_in_role<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_principals_in_role_args> {
      public get_principals_in_role() {
        super("get_principals_in_role");
      }

      public get_principals_in_role_args getEmptyArgsInstance() {
        return new get_principals_in_role_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_principals_in_role_result getResult(I iface, get_principals_in_role_args args) throws org.apache.thrift.TException {
        get_principals_in_role_result result = new get_principals_in_role_result();
        try {
          result.success = iface.get_principals_in_role(args.request);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_role_grants_for_principal<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_role_grants_for_principal_args> {
      public get_role_grants_for_principal() {
        super("get_role_grants_for_principal");
      }

      public get_role_grants_for_principal_args getEmptyArgsInstance() {
        return new get_role_grants_for_principal_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_role_grants_for_principal_result getResult(I iface, get_role_grants_for_principal_args args) throws org.apache.thrift.TException {
        get_role_grants_for_principal_result result = new get_role_grants_for_principal_result();
        try {
          result.success = iface.get_role_grants_for_principal(args.request);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_privilege_set<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_privilege_set_args> {
      public get_privilege_set() {
        super("get_privilege_set");
      }

      public get_privilege_set_args getEmptyArgsInstance() {
        return new get_privilege_set_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_privilege_set_result getResult(I iface, get_privilege_set_args args) throws org.apache.thrift.TException {
        get_privilege_set_result result = new get_privilege_set_result();
        try {
          result.success = iface.get_privilege_set(args.hiveObject, args.user_name, args.group_names);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class list_privileges<I extends Iface> extends org.apache.thrift.ProcessFunction<I, list_privileges_args> {
      public list_privileges() {
        super("list_privileges");
      }

      public list_privileges_args getEmptyArgsInstance() {
        return new list_privileges_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public list_privileges_result getResult(I iface, list_privileges_args args) throws org.apache.thrift.TException {
        list_privileges_result result = new list_privileges_result();
        try {
          result.success = iface.list_privileges(args.principal_name, args.principal_type, args.hiveObject);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class grant_privileges<I extends Iface> extends org.apache.thrift.ProcessFunction<I, grant_privileges_args> {
      public grant_privileges() {
        super("grant_privileges");
      }

      public grant_privileges_args getEmptyArgsInstance() {
        return new grant_privileges_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public grant_privileges_result getResult(I iface, grant_privileges_args args) throws org.apache.thrift.TException {
        grant_privileges_result result = new grant_privileges_result();
        try {
          result.success = iface.grant_privileges(args.privileges);
          result.setSuccessIsSet(true);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class revoke_privileges<I extends Iface> extends org.apache.thrift.ProcessFunction<I, revoke_privileges_args> {
      public revoke_privileges() {
        super("revoke_privileges");
      }

      public revoke_privileges_args getEmptyArgsInstance() {
        return new revoke_privileges_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public revoke_privileges_result getResult(I iface, revoke_privileges_args args) throws org.apache.thrift.TException {
        revoke_privileges_result result = new revoke_privileges_result();
        try {
          result.success = iface.revoke_privileges(args.privileges);
          result.setSuccessIsSet(true);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class grant_revoke_privileges<I extends Iface> extends org.apache.thrift.ProcessFunction<I, grant_revoke_privileges_args> {
      public grant_revoke_privileges() {
        super("grant_revoke_privileges");
      }

      public grant_revoke_privileges_args getEmptyArgsInstance() {
        return new grant_revoke_privileges_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public grant_revoke_privileges_result getResult(I iface, grant_revoke_privileges_args args) throws org.apache.thrift.TException {
        grant_revoke_privileges_result result = new grant_revoke_privileges_result();
        try {
          result.success = iface.grant_revoke_privileges(args.request);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class refresh_privileges<I extends Iface> extends org.apache.thrift.ProcessFunction<I, refresh_privileges_args> {
      public refresh_privileges() {
        super("refresh_privileges");
      }

      public refresh_privileges_args getEmptyArgsInstance() {
        return new refresh_privileges_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public refresh_privileges_result getResult(I iface, refresh_privileges_args args) throws org.apache.thrift.TException {
        refresh_privileges_result result = new refresh_privileges_result();
        try {
          result.success = iface.refresh_privileges(args.objToRefresh, args.authorizer, args.grantRequest);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class set_ugi<I extends Iface> extends org.apache.thrift.ProcessFunction<I, set_ugi_args> {
      public set_ugi() {
        super("set_ugi");
      }

      public set_ugi_args getEmptyArgsInstance() {
        return new set_ugi_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public set_ugi_result getResult(I iface, set_ugi_args args) throws org.apache.thrift.TException {
        set_ugi_result result = new set_ugi_result();
        try {
          result.success = iface.set_ugi(args.user_name, args.group_names);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_delegation_token<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_delegation_token_args> {
      public get_delegation_token() {
        super("get_delegation_token");
      }

      public get_delegation_token_args getEmptyArgsInstance() {
        return new get_delegation_token_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_delegation_token_result getResult(I iface, get_delegation_token_args args) throws org.apache.thrift.TException {
        get_delegation_token_result result = new get_delegation_token_result();
        try {
          result.success = iface.get_delegation_token(args.token_owner, args.renewer_kerberos_principal_name);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class renew_delegation_token<I extends Iface> extends org.apache.thrift.ProcessFunction<I, renew_delegation_token_args> {
      public renew_delegation_token() {
        super("renew_delegation_token");
      }

      public renew_delegation_token_args getEmptyArgsInstance() {
        return new renew_delegation_token_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public renew_delegation_token_result getResult(I iface, renew_delegation_token_args args) throws org.apache.thrift.TException {
        renew_delegation_token_result result = new renew_delegation_token_result();
        try {
          result.success = iface.renew_delegation_token(args.token_str_form);
          result.setSuccessIsSet(true);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class cancel_delegation_token<I extends Iface> extends org.apache.thrift.ProcessFunction<I, cancel_delegation_token_args> {
      public cancel_delegation_token() {
        super("cancel_delegation_token");
      }

      public cancel_delegation_token_args getEmptyArgsInstance() {
        return new cancel_delegation_token_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public cancel_delegation_token_result getResult(I iface, cancel_delegation_token_args args) throws org.apache.thrift.TException {
        cancel_delegation_token_result result = new cancel_delegation_token_result();
        try {
          iface.cancel_delegation_token(args.token_str_form);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_token<I extends Iface> extends org.apache.thrift.ProcessFunction<I, add_token_args> {
      public add_token() {
        super("add_token");
      }

      public add_token_args getEmptyArgsInstance() {
        return new add_token_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public add_token_result getResult(I iface, add_token_args args) throws org.apache.thrift.TException {
        add_token_result result = new add_token_result();
        result.success = iface.add_token(args.token_identifier, args.delegation_token);
        result.setSuccessIsSet(true);
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class remove_token<I extends Iface> extends org.apache.thrift.ProcessFunction<I, remove_token_args> {
      public remove_token() {
        super("remove_token");
      }

      public remove_token_args getEmptyArgsInstance() {
        return new remove_token_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public remove_token_result getResult(I iface, remove_token_args args) throws org.apache.thrift.TException {
        remove_token_result result = new remove_token_result();
        result.success = iface.remove_token(args.token_identifier);
        result.setSuccessIsSet(true);
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_token<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_token_args> {
      public get_token() {
        super("get_token");
      }

      public get_token_args getEmptyArgsInstance() {
        return new get_token_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_token_result getResult(I iface, get_token_args args) throws org.apache.thrift.TException {
        get_token_result result = new get_token_result();
        result.success = iface.get_token(args.token_identifier);
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_all_token_identifiers<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_all_token_identifiers_args> {
      public get_all_token_identifiers() {
        super("get_all_token_identifiers");
      }

      public get_all_token_identifiers_args getEmptyArgsInstance() {
        return new get_all_token_identifiers_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_all_token_identifiers_result getResult(I iface, get_all_token_identifiers_args args) throws org.apache.thrift.TException {
        get_all_token_identifiers_result result = new get_all_token_identifiers_result();
        result.success = iface.get_all_token_identifiers();
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_master_key<I extends Iface> extends org.apache.thrift.ProcessFunction<I, add_master_key_args> {
      public add_master_key() {
        super("add_master_key");
      }

      public add_master_key_args getEmptyArgsInstance() {
        return new add_master_key_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public add_master_key_result getResult(I iface, add_master_key_args args) throws org.apache.thrift.TException {
        add_master_key_result result = new add_master_key_result();
        try {
          result.success = iface.add_master_key(args.key);
          result.setSuccessIsSet(true);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class update_master_key<I extends Iface> extends org.apache.thrift.ProcessFunction<I, update_master_key_args> {
      public update_master_key() {
        super("update_master_key");
      }

      public update_master_key_args getEmptyArgsInstance() {
        return new update_master_key_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public update_master_key_result getResult(I iface, update_master_key_args args) throws org.apache.thrift.TException {
        update_master_key_result result = new update_master_key_result();
        try {
          iface.update_master_key(args.seq_number, args.key);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class remove_master_key<I extends Iface> extends org.apache.thrift.ProcessFunction<I, remove_master_key_args> {
      public remove_master_key() {
        super("remove_master_key");
      }

      public remove_master_key_args getEmptyArgsInstance() {
        return new remove_master_key_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public remove_master_key_result getResult(I iface, remove_master_key_args args) throws org.apache.thrift.TException {
        remove_master_key_result result = new remove_master_key_result();
        result.success = iface.remove_master_key(args.key_seq);
        result.setSuccessIsSet(true);
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_master_keys<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_master_keys_args> {
      public get_master_keys() {
        super("get_master_keys");
      }

      public get_master_keys_args getEmptyArgsInstance() {
        return new get_master_keys_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_master_keys_result getResult(I iface, get_master_keys_args args) throws org.apache.thrift.TException {
        get_master_keys_result result = new get_master_keys_result();
        result.success = iface.get_master_keys();
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_open_txns<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_open_txns_args> {
      public get_open_txns() {
        super("get_open_txns");
      }

      public get_open_txns_args getEmptyArgsInstance() {
        return new get_open_txns_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_open_txns_result getResult(I iface, get_open_txns_args args) throws org.apache.thrift.TException {
        get_open_txns_result result = new get_open_txns_result();
        result.success = iface.get_open_txns();
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_open_txns_info<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_open_txns_info_args> {
      public get_open_txns_info() {
        super("get_open_txns_info");
      }

      public get_open_txns_info_args getEmptyArgsInstance() {
        return new get_open_txns_info_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_open_txns_info_result getResult(I iface, get_open_txns_info_args args) throws org.apache.thrift.TException {
        get_open_txns_info_result result = new get_open_txns_info_result();
        result.success = iface.get_open_txns_info();
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class open_txns<I extends Iface> extends org.apache.thrift.ProcessFunction<I, open_txns_args> {
      public open_txns() {
        super("open_txns");
      }

      public open_txns_args getEmptyArgsInstance() {
        return new open_txns_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public open_txns_result getResult(I iface, open_txns_args args) throws org.apache.thrift.TException {
        open_txns_result result = new open_txns_result();
        result.success = iface.open_txns(args.rqst);
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class abort_txn<I extends Iface> extends org.apache.thrift.ProcessFunction<I, abort_txn_args> {
      public abort_txn() {
        super("abort_txn");
      }

      public abort_txn_args getEmptyArgsInstance() {
        return new abort_txn_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public abort_txn_result getResult(I iface, abort_txn_args args) throws org.apache.thrift.TException {
        abort_txn_result result = new abort_txn_result();
        try {
          iface.abort_txn(args.rqst);
        } catch (NoSuchTxnException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class abort_txns<I extends Iface> extends org.apache.thrift.ProcessFunction<I, abort_txns_args> {
      public abort_txns() {
        super("abort_txns");
      }

      public abort_txns_args getEmptyArgsInstance() {
        return new abort_txns_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public abort_txns_result getResult(I iface, abort_txns_args args) throws org.apache.thrift.TException {
        abort_txns_result result = new abort_txns_result();
        try {
          iface.abort_txns(args.rqst);
        } catch (NoSuchTxnException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class commit_txn<I extends Iface> extends org.apache.thrift.ProcessFunction<I, commit_txn_args> {
      public commit_txn() {
        super("commit_txn");
      }

      public commit_txn_args getEmptyArgsInstance() {
        return new commit_txn_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public commit_txn_result getResult(I iface, commit_txn_args args) throws org.apache.thrift.TException {
        commit_txn_result result = new commit_txn_result();
        try {
          iface.commit_txn(args.rqst);
        } catch (NoSuchTxnException o1) {
          result.o1 = o1;
        } catch (TxnAbortedException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class repl_tbl_writeid_state<I extends Iface> extends org.apache.thrift.ProcessFunction<I, repl_tbl_writeid_state_args> {
      public repl_tbl_writeid_state() {
        super("repl_tbl_writeid_state");
      }

      public repl_tbl_writeid_state_args getEmptyArgsInstance() {
        return new repl_tbl_writeid_state_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public repl_tbl_writeid_state_result getResult(I iface, repl_tbl_writeid_state_args args) throws org.apache.thrift.TException {
        repl_tbl_writeid_state_result result = new repl_tbl_writeid_state_result();
        iface.repl_tbl_writeid_state(args.rqst);
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_valid_write_ids<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_valid_write_ids_args> {
      public get_valid_write_ids() {
        super("get_valid_write_ids");
      }

      public get_valid_write_ids_args getEmptyArgsInstance() {
        return new get_valid_write_ids_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_valid_write_ids_result getResult(I iface, get_valid_write_ids_args args) throws org.apache.thrift.TException {
        get_valid_write_ids_result result = new get_valid_write_ids_result();
        try {
          result.success = iface.get_valid_write_ids(args.rqst);
        } catch (NoSuchTxnException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class allocate_table_write_ids<I extends Iface> extends org.apache.thrift.ProcessFunction<I, allocate_table_write_ids_args> {
      public allocate_table_write_ids() {
        super("allocate_table_write_ids");
      }

      public allocate_table_write_ids_args getEmptyArgsInstance() {
        return new allocate_table_write_ids_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public allocate_table_write_ids_result getResult(I iface, allocate_table_write_ids_args args) throws org.apache.thrift.TException {
        allocate_table_write_ids_result result = new allocate_table_write_ids_result();
        try {
          result.success = iface.allocate_table_write_ids(args.rqst);
        } catch (NoSuchTxnException o1) {
          result.o1 = o1;
        } catch (TxnAbortedException o2) {
          result.o2 = o2;
        } catch (MetaException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class lock<I extends Iface> extends org.apache.thrift.ProcessFunction<I, lock_args> {
      public lock() {
        super("lock");
      }

      public lock_args getEmptyArgsInstance() {
        return new lock_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public lock_result getResult(I iface, lock_args args) throws org.apache.thrift.TException {
        lock_result result = new lock_result();
        try {
          result.success = iface.lock(args.rqst);
        } catch (NoSuchTxnException o1) {
          result.o1 = o1;
        } catch (TxnAbortedException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class check_lock<I extends Iface> extends org.apache.thrift.ProcessFunction<I, check_lock_args> {
      public check_lock() {
        super("check_lock");
      }

      public check_lock_args getEmptyArgsInstance() {
        return new check_lock_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public check_lock_result getResult(I iface, check_lock_args args) throws org.apache.thrift.TException {
        check_lock_result result = new check_lock_result();
        try {
          result.success = iface.check_lock(args.rqst);
        } catch (NoSuchTxnException o1) {
          result.o1 = o1;
        } catch (TxnAbortedException o2) {
          result.o2 = o2;
        } catch (NoSuchLockException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class unlock<I extends Iface> extends org.apache.thrift.ProcessFunction<I, unlock_args> {
      public unlock() {
        super("unlock");
      }

      public unlock_args getEmptyArgsInstance() {
        return new unlock_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public unlock_result getResult(I iface, unlock_args args) throws org.apache.thrift.TException {
        unlock_result result = new unlock_result();
        try {
          iface.unlock(args.rqst);
        } catch (NoSuchLockException o1) {
          result.o1 = o1;
        } catch (TxnOpenException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class show_locks<I extends Iface> extends org.apache.thrift.ProcessFunction<I, show_locks_args> {
      public show_locks() {
        super("show_locks");
      }

      public show_locks_args getEmptyArgsInstance() {
        return new show_locks_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public show_locks_result getResult(I iface, show_locks_args args) throws org.apache.thrift.TException {
        show_locks_result result = new show_locks_result();
        result.success = iface.show_locks(args.rqst);
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class heartbeat<I extends Iface> extends org.apache.thrift.ProcessFunction<I, heartbeat_args> {
      public heartbeat() {
        super("heartbeat");
      }

      public heartbeat_args getEmptyArgsInstance() {
        return new heartbeat_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public heartbeat_result getResult(I iface, heartbeat_args args) throws org.apache.thrift.TException {
        heartbeat_result result = new heartbeat_result();
        try {
          iface.heartbeat(args.ids);
        } catch (NoSuchLockException o1) {
          result.o1 = o1;
        } catch (NoSuchTxnException o2) {
          result.o2 = o2;
        } catch (TxnAbortedException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class heartbeat_txn_range<I extends Iface> extends org.apache.thrift.ProcessFunction<I, heartbeat_txn_range_args> {
      public heartbeat_txn_range() {
        super("heartbeat_txn_range");
      }

      public heartbeat_txn_range_args getEmptyArgsInstance() {
        return new heartbeat_txn_range_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public heartbeat_txn_range_result getResult(I iface, heartbeat_txn_range_args args) throws org.apache.thrift.TException {
        heartbeat_txn_range_result result = new heartbeat_txn_range_result();
        result.success = iface.heartbeat_txn_range(args.txns);
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class compact<I extends Iface> extends org.apache.thrift.ProcessFunction<I, compact_args> {
      public compact() {
        super("compact");
      }

      public compact_args getEmptyArgsInstance() {
        return new compact_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public compact_result getResult(I iface, compact_args args) throws org.apache.thrift.TException {
        compact_result result = new compact_result();
        iface.compact(args.rqst);
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class compact2<I extends Iface> extends org.apache.thrift.ProcessFunction<I, compact2_args> {
      public compact2() {
        super("compact2");
      }

      public compact2_args getEmptyArgsInstance() {
        return new compact2_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public compact2_result getResult(I iface, compact2_args args) throws org.apache.thrift.TException {
        compact2_result result = new compact2_result();
        result.success = iface.compact2(args.rqst);
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class show_compact<I extends Iface> extends org.apache.thrift.ProcessFunction<I, show_compact_args> {
      public show_compact() {
        super("show_compact");
      }

      public show_compact_args getEmptyArgsInstance() {
        return new show_compact_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public show_compact_result getResult(I iface, show_compact_args args) throws org.apache.thrift.TException {
        show_compact_result result = new show_compact_result();
        result.success = iface.show_compact(args.rqst);
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_dynamic_partitions<I extends Iface> extends org.apache.thrift.ProcessFunction<I, add_dynamic_partitions_args> {
      public add_dynamic_partitions() {
        super("add_dynamic_partitions");
      }

      public add_dynamic_partitions_args getEmptyArgsInstance() {
        return new add_dynamic_partitions_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public add_dynamic_partitions_result getResult(I iface, add_dynamic_partitions_args args) throws org.apache.thrift.TException {
        add_dynamic_partitions_result result = new add_dynamic_partitions_result();
        try {
          iface.add_dynamic_partitions(args.rqst);
        } catch (NoSuchTxnException o1) {
          result.o1 = o1;
        } catch (TxnAbortedException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_next_notification<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_next_notification_args> {
      public get_next_notification() {
        super("get_next_notification");
      }

      public get_next_notification_args getEmptyArgsInstance() {
        return new get_next_notification_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_next_notification_result getResult(I iface, get_next_notification_args args) throws org.apache.thrift.TException {
        get_next_notification_result result = new get_next_notification_result();
        result.success = iface.get_next_notification(args.rqst);
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_current_notificationEventId<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_current_notificationEventId_args> {
      public get_current_notificationEventId() {
        super("get_current_notificationEventId");
      }

      public get_current_notificationEventId_args getEmptyArgsInstance() {
        return new get_current_notificationEventId_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_current_notificationEventId_result getResult(I iface, get_current_notificationEventId_args args) throws org.apache.thrift.TException {
        get_current_notificationEventId_result result = new get_current_notificationEventId_result();
        result.success = iface.get_current_notificationEventId();
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_notification_events_count<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_notification_events_count_args> {
      public get_notification_events_count() {
        super("get_notification_events_count");
      }

      public get_notification_events_count_args getEmptyArgsInstance() {
        return new get_notification_events_count_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_notification_events_count_result getResult(I iface, get_notification_events_count_args args) throws org.apache.thrift.TException {
        get_notification_events_count_result result = new get_notification_events_count_result();
        result.success = iface.get_notification_events_count(args.rqst);
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class fire_listener_event<I extends Iface> extends org.apache.thrift.ProcessFunction<I, fire_listener_event_args> {
      public fire_listener_event() {
        super("fire_listener_event");
      }

      public fire_listener_event_args getEmptyArgsInstance() {
        return new fire_listener_event_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public fire_listener_event_result getResult(I iface, fire_listener_event_args args) throws org.apache.thrift.TException {
        fire_listener_event_result result = new fire_listener_event_result();
        result.success = iface.fire_listener_event(args.rqst);
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class flushCache<I extends Iface> extends org.apache.thrift.ProcessFunction<I, flushCache_args> {
      public flushCache() {
        super("flushCache");
      }

      public flushCache_args getEmptyArgsInstance() {
        return new flushCache_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public flushCache_result getResult(I iface, flushCache_args args) throws org.apache.thrift.TException {
        flushCache_result result = new flushCache_result();
        iface.flushCache();
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class cm_recycle<I extends Iface> extends org.apache.thrift.ProcessFunction<I, cm_recycle_args> {
      public cm_recycle() {
        super("cm_recycle");
      }

      public cm_recycle_args getEmptyArgsInstance() {
        return new cm_recycle_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public cm_recycle_result getResult(I iface, cm_recycle_args args) throws org.apache.thrift.TException {
        cm_recycle_result result = new cm_recycle_result();
        try {
          result.success = iface.cm_recycle(args.request);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_file_metadata_by_expr<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_file_metadata_by_expr_args> {
      public get_file_metadata_by_expr() {
        super("get_file_metadata_by_expr");
      }

      public get_file_metadata_by_expr_args getEmptyArgsInstance() {
        return new get_file_metadata_by_expr_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_file_metadata_by_expr_result getResult(I iface, get_file_metadata_by_expr_args args) throws org.apache.thrift.TException {
        get_file_metadata_by_expr_result result = new get_file_metadata_by_expr_result();
        result.success = iface.get_file_metadata_by_expr(args.req);
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_file_metadata<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_file_metadata_args> {
      public get_file_metadata() {
        super("get_file_metadata");
      }

      public get_file_metadata_args getEmptyArgsInstance() {
        return new get_file_metadata_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_file_metadata_result getResult(I iface, get_file_metadata_args args) throws org.apache.thrift.TException {
        get_file_metadata_result result = new get_file_metadata_result();
        result.success = iface.get_file_metadata(args.req);
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class put_file_metadata<I extends Iface> extends org.apache.thrift.ProcessFunction<I, put_file_metadata_args> {
      public put_file_metadata() {
        super("put_file_metadata");
      }

      public put_file_metadata_args getEmptyArgsInstance() {
        return new put_file_metadata_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public put_file_metadata_result getResult(I iface, put_file_metadata_args args) throws org.apache.thrift.TException {
        put_file_metadata_result result = new put_file_metadata_result();
        result.success = iface.put_file_metadata(args.req);
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class clear_file_metadata<I extends Iface> extends org.apache.thrift.ProcessFunction<I, clear_file_metadata_args> {
      public clear_file_metadata() {
        super("clear_file_metadata");
      }

      public clear_file_metadata_args getEmptyArgsInstance() {
        return new clear_file_metadata_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public clear_file_metadata_result getResult(I iface, clear_file_metadata_args args) throws org.apache.thrift.TException {
        clear_file_metadata_result result = new clear_file_metadata_result();
        result.success = iface.clear_file_metadata(args.req);
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class cache_file_metadata<I extends Iface> extends org.apache.thrift.ProcessFunction<I, cache_file_metadata_args> {
      public cache_file_metadata() {
        super("cache_file_metadata");
      }

      public cache_file_metadata_args getEmptyArgsInstance() {
        return new cache_file_metadata_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public cache_file_metadata_result getResult(I iface, cache_file_metadata_args args) throws org.apache.thrift.TException {
        cache_file_metadata_result result = new cache_file_metadata_result();
        result.success = iface.cache_file_metadata(args.req);
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_metastore_db_uuid<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_metastore_db_uuid_args> {
      public get_metastore_db_uuid() {
        super("get_metastore_db_uuid");
      }

      public get_metastore_db_uuid_args getEmptyArgsInstance() {
        return new get_metastore_db_uuid_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_metastore_db_uuid_result getResult(I iface, get_metastore_db_uuid_args args) throws org.apache.thrift.TException {
        get_metastore_db_uuid_result result = new get_metastore_db_uuid_result();
        try {
          result.success = iface.get_metastore_db_uuid();
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_resource_plan<I extends Iface> extends org.apache.thrift.ProcessFunction<I, create_resource_plan_args> {
      public create_resource_plan() {
        super("create_resource_plan");
      }

      public create_resource_plan_args getEmptyArgsInstance() {
        return new create_resource_plan_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public create_resource_plan_result getResult(I iface, create_resource_plan_args args) throws org.apache.thrift.TException {
        create_resource_plan_result result = new create_resource_plan_result();
        try {
          result.success = iface.create_resource_plan(args.request);
        } catch (AlreadyExistsException o1) {
          result.o1 = o1;
        } catch (InvalidObjectException o2) {
          result.o2 = o2;
        } catch (MetaException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_resource_plan<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_resource_plan_args> {
      public get_resource_plan() {
        super("get_resource_plan");
      }

      public get_resource_plan_args getEmptyArgsInstance() {
        return new get_resource_plan_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_resource_plan_result getResult(I iface, get_resource_plan_args args) throws org.apache.thrift.TException {
        get_resource_plan_result result = new get_resource_plan_result();
        try {
          result.success = iface.get_resource_plan(args.request);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_active_resource_plan<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_active_resource_plan_args> {
      public get_active_resource_plan() {
        super("get_active_resource_plan");
      }

      public get_active_resource_plan_args getEmptyArgsInstance() {
        return new get_active_resource_plan_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_active_resource_plan_result getResult(I iface, get_active_resource_plan_args args) throws org.apache.thrift.TException {
        get_active_resource_plan_result result = new get_active_resource_plan_result();
        try {
          result.success = iface.get_active_resource_plan(args.request);
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_all_resource_plans<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_all_resource_plans_args> {
      public get_all_resource_plans() {
        super("get_all_resource_plans");
      }

      public get_all_resource_plans_args getEmptyArgsInstance() {
        return new get_all_resource_plans_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_all_resource_plans_result getResult(I iface, get_all_resource_plans_args args) throws org.apache.thrift.TException {
        get_all_resource_plans_result result = new get_all_resource_plans_result();
        try {
          result.success = iface.get_all_resource_plans(args.request);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_resource_plan<I extends Iface> extends org.apache.thrift.ProcessFunction<I, alter_resource_plan_args> {
      public alter_resource_plan() {
        super("alter_resource_plan");
      }

      public alter_resource_plan_args getEmptyArgsInstance() {
        return new alter_resource_plan_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public alter_resource_plan_result getResult(I iface, alter_resource_plan_args args) throws org.apache.thrift.TException {
        alter_resource_plan_result result = new alter_resource_plan_result();
        try {
          result.success = iface.alter_resource_plan(args.request);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (InvalidOperationException o2) {
          result.o2 = o2;
        } catch (MetaException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class validate_resource_plan<I extends Iface> extends org.apache.thrift.ProcessFunction<I, validate_resource_plan_args> {
      public validate_resource_plan() {
        super("validate_resource_plan");
      }

      public validate_resource_plan_args getEmptyArgsInstance() {
        return new validate_resource_plan_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public validate_resource_plan_result getResult(I iface, validate_resource_plan_args args) throws org.apache.thrift.TException {
        validate_resource_plan_result result = new validate_resource_plan_result();
        try {
          result.success = iface.validate_resource_plan(args.request);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_resource_plan<I extends Iface> extends org.apache.thrift.ProcessFunction<I, drop_resource_plan_args> {
      public drop_resource_plan() {
        super("drop_resource_plan");
      }

      public drop_resource_plan_args getEmptyArgsInstance() {
        return new drop_resource_plan_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public drop_resource_plan_result getResult(I iface, drop_resource_plan_args args) throws org.apache.thrift.TException {
        drop_resource_plan_result result = new drop_resource_plan_result();
        try {
          result.success = iface.drop_resource_plan(args.request);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (InvalidOperationException o2) {
          result.o2 = o2;
        } catch (MetaException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_wm_trigger<I extends Iface> extends org.apache.thrift.ProcessFunction<I, create_wm_trigger_args> {
      public create_wm_trigger() {
        super("create_wm_trigger");
      }

      public create_wm_trigger_args getEmptyArgsInstance() {
        return new create_wm_trigger_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public create_wm_trigger_result getResult(I iface, create_wm_trigger_args args) throws org.apache.thrift.TException {
        create_wm_trigger_result result = new create_wm_trigger_result();
        try {
          result.success = iface.create_wm_trigger(args.request);
        } catch (AlreadyExistsException o1) {
          result.o1 = o1;
        } catch (NoSuchObjectException o2) {
          result.o2 = o2;
        } catch (InvalidObjectException o3) {
          result.o3 = o3;
        } catch (MetaException o4) {
          result.o4 = o4;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_wm_trigger<I extends Iface> extends org.apache.thrift.ProcessFunction<I, alter_wm_trigger_args> {
      public alter_wm_trigger() {
        super("alter_wm_trigger");
      }

      public alter_wm_trigger_args getEmptyArgsInstance() {
        return new alter_wm_trigger_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public alter_wm_trigger_result getResult(I iface, alter_wm_trigger_args args) throws org.apache.thrift.TException {
        alter_wm_trigger_result result = new alter_wm_trigger_result();
        try {
          result.success = iface.alter_wm_trigger(args.request);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (InvalidObjectException o2) {
          result.o2 = o2;
        } catch (MetaException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_wm_trigger<I extends Iface> extends org.apache.thrift.ProcessFunction<I, drop_wm_trigger_args> {
      public drop_wm_trigger() {
        super("drop_wm_trigger");
      }

      public drop_wm_trigger_args getEmptyArgsInstance() {
        return new drop_wm_trigger_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public drop_wm_trigger_result getResult(I iface, drop_wm_trigger_args args) throws org.apache.thrift.TException {
        drop_wm_trigger_result result = new drop_wm_trigger_result();
        try {
          result.success = iface.drop_wm_trigger(args.request);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (InvalidOperationException o2) {
          result.o2 = o2;
        } catch (MetaException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_triggers_for_resourceplan<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_triggers_for_resourceplan_args> {
      public get_triggers_for_resourceplan() {
        super("get_triggers_for_resourceplan");
      }

      public get_triggers_for_resourceplan_args getEmptyArgsInstance() {
        return new get_triggers_for_resourceplan_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_triggers_for_resourceplan_result getResult(I iface, get_triggers_for_resourceplan_args args) throws org.apache.thrift.TException {
        get_triggers_for_resourceplan_result result = new get_triggers_for_resourceplan_result();
        try {
          result.success = iface.get_triggers_for_resourceplan(args.request);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_wm_pool<I extends Iface> extends org.apache.thrift.ProcessFunction<I, create_wm_pool_args> {
      public create_wm_pool() {
        super("create_wm_pool");
      }

      public create_wm_pool_args getEmptyArgsInstance() {
        return new create_wm_pool_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public create_wm_pool_result getResult(I iface, create_wm_pool_args args) throws org.apache.thrift.TException {
        create_wm_pool_result result = new create_wm_pool_result();
        try {
          result.success = iface.create_wm_pool(args.request);
        } catch (AlreadyExistsException o1) {
          result.o1 = o1;
        } catch (NoSuchObjectException o2) {
          result.o2 = o2;
        } catch (InvalidObjectException o3) {
          result.o3 = o3;
        } catch (MetaException o4) {
          result.o4 = o4;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_wm_pool<I extends Iface> extends org.apache.thrift.ProcessFunction<I, alter_wm_pool_args> {
      public alter_wm_pool() {
        super("alter_wm_pool");
      }

      public alter_wm_pool_args getEmptyArgsInstance() {
        return new alter_wm_pool_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public alter_wm_pool_result getResult(I iface, alter_wm_pool_args args) throws org.apache.thrift.TException {
        alter_wm_pool_result result = new alter_wm_pool_result();
        try {
          result.success = iface.alter_wm_pool(args.request);
        } catch (AlreadyExistsException o1) {
          result.o1 = o1;
        } catch (NoSuchObjectException o2) {
          result.o2 = o2;
        } catch (InvalidObjectException o3) {
          result.o3 = o3;
        } catch (MetaException o4) {
          result.o4 = o4;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_wm_pool<I extends Iface> extends org.apache.thrift.ProcessFunction<I, drop_wm_pool_args> {
      public drop_wm_pool() {
        super("drop_wm_pool");
      }

      public drop_wm_pool_args getEmptyArgsInstance() {
        return new drop_wm_pool_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public drop_wm_pool_result getResult(I iface, drop_wm_pool_args args) throws org.apache.thrift.TException {
        drop_wm_pool_result result = new drop_wm_pool_result();
        try {
          result.success = iface.drop_wm_pool(args.request);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (InvalidOperationException o2) {
          result.o2 = o2;
        } catch (MetaException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_or_update_wm_mapping<I extends Iface> extends org.apache.thrift.ProcessFunction<I, create_or_update_wm_mapping_args> {
      public create_or_update_wm_mapping() {
        super("create_or_update_wm_mapping");
      }

      public create_or_update_wm_mapping_args getEmptyArgsInstance() {
        return new create_or_update_wm_mapping_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public create_or_update_wm_mapping_result getResult(I iface, create_or_update_wm_mapping_args args) throws org.apache.thrift.TException {
        create_or_update_wm_mapping_result result = new create_or_update_wm_mapping_result();
        try {
          result.success = iface.create_or_update_wm_mapping(args.request);
        } catch (AlreadyExistsException o1) {
          result.o1 = o1;
        } catch (NoSuchObjectException o2) {
          result.o2 = o2;
        } catch (InvalidObjectException o3) {
          result.o3 = o3;
        } catch (MetaException o4) {
          result.o4 = o4;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_wm_mapping<I extends Iface> extends org.apache.thrift.ProcessFunction<I, drop_wm_mapping_args> {
      public drop_wm_mapping() {
        super("drop_wm_mapping");
      }

      public drop_wm_mapping_args getEmptyArgsInstance() {
        return new drop_wm_mapping_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public drop_wm_mapping_result getResult(I iface, drop_wm_mapping_args args) throws org.apache.thrift.TException {
        drop_wm_mapping_result result = new drop_wm_mapping_result();
        try {
          result.success = iface.drop_wm_mapping(args.request);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (InvalidOperationException o2) {
          result.o2 = o2;
        } catch (MetaException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_or_drop_wm_trigger_to_pool_mapping<I extends Iface> extends org.apache.thrift.ProcessFunction<I, create_or_drop_wm_trigger_to_pool_mapping_args> {
      public create_or_drop_wm_trigger_to_pool_mapping() {
        super("create_or_drop_wm_trigger_to_pool_mapping");
      }

      public create_or_drop_wm_trigger_to_pool_mapping_args getEmptyArgsInstance() {
        return new create_or_drop_wm_trigger_to_pool_mapping_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public create_or_drop_wm_trigger_to_pool_mapping_result getResult(I iface, create_or_drop_wm_trigger_to_pool_mapping_args args) throws org.apache.thrift.TException {
        create_or_drop_wm_trigger_to_pool_mapping_result result = new create_or_drop_wm_trigger_to_pool_mapping_result();
        try {
          result.success = iface.create_or_drop_wm_trigger_to_pool_mapping(args.request);
        } catch (AlreadyExistsException o1) {
          result.o1 = o1;
        } catch (NoSuchObjectException o2) {
          result.o2 = o2;
        } catch (InvalidObjectException o3) {
          result.o3 = o3;
        } catch (MetaException o4) {
          result.o4 = o4;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_ischema<I extends Iface> extends org.apache.thrift.ProcessFunction<I, create_ischema_args> {
      public create_ischema() {
        super("create_ischema");
      }

      public create_ischema_args getEmptyArgsInstance() {
        return new create_ischema_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public create_ischema_result getResult(I iface, create_ischema_args args) throws org.apache.thrift.TException {
        create_ischema_result result = new create_ischema_result();
        try {
          iface.create_ischema(args.schema);
        } catch (AlreadyExistsException o1) {
          result.o1 = o1;
        } catch (NoSuchObjectException o2) {
          result.o2 = o2;
        } catch (MetaException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_ischema<I extends Iface> extends org.apache.thrift.ProcessFunction<I, alter_ischema_args> {
      public alter_ischema() {
        super("alter_ischema");
      }

      public alter_ischema_args getEmptyArgsInstance() {
        return new alter_ischema_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public alter_ischema_result getResult(I iface, alter_ischema_args args) throws org.apache.thrift.TException {
        alter_ischema_result result = new alter_ischema_result();
        try {
          iface.alter_ischema(args.rqst);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_ischema<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_ischema_args> {
      public get_ischema() {
        super("get_ischema");
      }

      public get_ischema_args getEmptyArgsInstance() {
        return new get_ischema_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_ischema_result getResult(I iface, get_ischema_args args) throws org.apache.thrift.TException {
        get_ischema_result result = new get_ischema_result();
        try {
          result.success = iface.get_ischema(args.name);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_ischema<I extends Iface> extends org.apache.thrift.ProcessFunction<I, drop_ischema_args> {
      public drop_ischema() {
        super("drop_ischema");
      }

      public drop_ischema_args getEmptyArgsInstance() {
        return new drop_ischema_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public drop_ischema_result getResult(I iface, drop_ischema_args args) throws org.apache.thrift.TException {
        drop_ischema_result result = new drop_ischema_result();
        try {
          iface.drop_ischema(args.name);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (InvalidOperationException o2) {
          result.o2 = o2;
        } catch (MetaException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_schema_version<I extends Iface> extends org.apache.thrift.ProcessFunction<I, add_schema_version_args> {
      public add_schema_version() {
        super("add_schema_version");
      }

      public add_schema_version_args getEmptyArgsInstance() {
        return new add_schema_version_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public add_schema_version_result getResult(I iface, add_schema_version_args args) throws org.apache.thrift.TException {
        add_schema_version_result result = new add_schema_version_result();
        try {
          iface.add_schema_version(args.schemaVersion);
        } catch (AlreadyExistsException o1) {
          result.o1 = o1;
        } catch (NoSuchObjectException o2) {
          result.o2 = o2;
        } catch (MetaException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_schema_version<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_schema_version_args> {
      public get_schema_version() {
        super("get_schema_version");
      }

      public get_schema_version_args getEmptyArgsInstance() {
        return new get_schema_version_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_schema_version_result getResult(I iface, get_schema_version_args args) throws org.apache.thrift.TException {
        get_schema_version_result result = new get_schema_version_result();
        try {
          result.success = iface.get_schema_version(args.schemaVersion);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_schema_latest_version<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_schema_latest_version_args> {
      public get_schema_latest_version() {
        super("get_schema_latest_version");
      }

      public get_schema_latest_version_args getEmptyArgsInstance() {
        return new get_schema_latest_version_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_schema_latest_version_result getResult(I iface, get_schema_latest_version_args args) throws org.apache.thrift.TException {
        get_schema_latest_version_result result = new get_schema_latest_version_result();
        try {
          result.success = iface.get_schema_latest_version(args.schemaName);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_schema_all_versions<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_schema_all_versions_args> {
      public get_schema_all_versions() {
        super("get_schema_all_versions");
      }

      public get_schema_all_versions_args getEmptyArgsInstance() {
        return new get_schema_all_versions_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_schema_all_versions_result getResult(I iface, get_schema_all_versions_args args) throws org.apache.thrift.TException {
        get_schema_all_versions_result result = new get_schema_all_versions_result();
        try {
          result.success = iface.get_schema_all_versions(args.schemaName);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_schema_version<I extends Iface> extends org.apache.thrift.ProcessFunction<I, drop_schema_version_args> {
      public drop_schema_version() {
        super("drop_schema_version");
      }

      public drop_schema_version_args getEmptyArgsInstance() {
        return new drop_schema_version_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public drop_schema_version_result getResult(I iface, drop_schema_version_args args) throws org.apache.thrift.TException {
        drop_schema_version_result result = new drop_schema_version_result();
        try {
          iface.drop_schema_version(args.schemaVersion);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_schemas_by_cols<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_schemas_by_cols_args> {
      public get_schemas_by_cols() {
        super("get_schemas_by_cols");
      }

      public get_schemas_by_cols_args getEmptyArgsInstance() {
        return new get_schemas_by_cols_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_schemas_by_cols_result getResult(I iface, get_schemas_by_cols_args args) throws org.apache.thrift.TException {
        get_schemas_by_cols_result result = new get_schemas_by_cols_result();
        try {
          result.success = iface.get_schemas_by_cols(args.rqst);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class map_schema_version_to_serde<I extends Iface> extends org.apache.thrift.ProcessFunction<I, map_schema_version_to_serde_args> {
      public map_schema_version_to_serde() {
        super("map_schema_version_to_serde");
      }

      public map_schema_version_to_serde_args getEmptyArgsInstance() {
        return new map_schema_version_to_serde_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public map_schema_version_to_serde_result getResult(I iface, map_schema_version_to_serde_args args) throws org.apache.thrift.TException {
        map_schema_version_to_serde_result result = new map_schema_version_to_serde_result();
        try {
          iface.map_schema_version_to_serde(args.rqst);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class set_schema_version_state<I extends Iface> extends org.apache.thrift.ProcessFunction<I, set_schema_version_state_args> {
      public set_schema_version_state() {
        super("set_schema_version_state");
      }

      public set_schema_version_state_args getEmptyArgsInstance() {
        return new set_schema_version_state_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public set_schema_version_state_result getResult(I iface, set_schema_version_state_args args) throws org.apache.thrift.TException {
        set_schema_version_state_result result = new set_schema_version_state_result();
        try {
          iface.set_schema_version_state(args.rqst);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (InvalidOperationException o2) {
          result.o2 = o2;
        } catch (MetaException o3) {
          result.o3 = o3;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_serde<I extends Iface> extends org.apache.thrift.ProcessFunction<I, add_serde_args> {
      public add_serde() {
        super("add_serde");
      }

      public add_serde_args getEmptyArgsInstance() {
        return new add_serde_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public add_serde_result getResult(I iface, add_serde_args args) throws org.apache.thrift.TException {
        add_serde_result result = new add_serde_result();
        try {
          iface.add_serde(args.serde);
        } catch (AlreadyExistsException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_serde<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_serde_args> {
      public get_serde() {
        super("get_serde");
      }

      public get_serde_args getEmptyArgsInstance() {
        return new get_serde_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_serde_result getResult(I iface, get_serde_args args) throws org.apache.thrift.TException {
        get_serde_result result = new get_serde_result();
        try {
          result.success = iface.get_serde(args.rqst);
        } catch (NoSuchObjectException o1) {
          result.o1 = o1;
        } catch (MetaException o2) {
          result.o2 = o2;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_lock_materialization_rebuild<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_lock_materialization_rebuild_args> {
      public get_lock_materialization_rebuild() {
        super("get_lock_materialization_rebuild");
      }

      public get_lock_materialization_rebuild_args getEmptyArgsInstance() {
        return new get_lock_materialization_rebuild_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_lock_materialization_rebuild_result getResult(I iface, get_lock_materialization_rebuild_args args) throws org.apache.thrift.TException {
        get_lock_materialization_rebuild_result result = new get_lock_materialization_rebuild_result();
        result.success = iface.get_lock_materialization_rebuild(args.dbName, args.tableName, args.txnId);
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class heartbeat_lock_materialization_rebuild<I extends Iface> extends org.apache.thrift.ProcessFunction<I, heartbeat_lock_materialization_rebuild_args> {
      public heartbeat_lock_materialization_rebuild() {
        super("heartbeat_lock_materialization_rebuild");
      }

      public heartbeat_lock_materialization_rebuild_args getEmptyArgsInstance() {
        return new heartbeat_lock_materialization_rebuild_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public heartbeat_lock_materialization_rebuild_result getResult(I iface, heartbeat_lock_materialization_rebuild_args args) throws org.apache.thrift.TException {
        heartbeat_lock_materialization_rebuild_result result = new heartbeat_lock_materialization_rebuild_result();
        result.success = iface.heartbeat_lock_materialization_rebuild(args.dbName, args.tableName, args.txnId);
        result.setSuccessIsSet(true);
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_runtime_stats<I extends Iface> extends org.apache.thrift.ProcessFunction<I, add_runtime_stats_args> {
      public add_runtime_stats() {
        super("add_runtime_stats");
      }

      public add_runtime_stats_args getEmptyArgsInstance() {
        return new add_runtime_stats_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public add_runtime_stats_result getResult(I iface, add_runtime_stats_args args) throws org.apache.thrift.TException {
        add_runtime_stats_result result = new add_runtime_stats_result();
        try {
          iface.add_runtime_stats(args.stat);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_runtime_stats<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_runtime_stats_args> {
      public get_runtime_stats() {
        super("get_runtime_stats");
      }

      public get_runtime_stats_args getEmptyArgsInstance() {
        return new get_runtime_stats_args();
      }

      protected boolean isOneway() {
        return false;
      }

      @Override
      protected boolean rethrowUnhandledExceptions() {
        return false;
      }

      public get_runtime_stats_result getResult(I iface, get_runtime_stats_args args) throws org.apache.thrift.TException {
        get_runtime_stats_result result = new get_runtime_stats_result();
        try {
          result.success = iface.get_runtime_stats(args.rqst);
        } catch (MetaException o1) {
          result.o1 = o1;
        }
        return result;
      }
    }

  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class AsyncProcessor<I extends AsyncIface> extends com.facebook.fb303.FacebookService.AsyncProcessor<I> {
    private static final org.slf4j.Logger _LOGGER = org.slf4j.LoggerFactory.getLogger(AsyncProcessor.class.getName());
    public AsyncProcessor(I iface) {
      super(iface, getProcessMap(new java.util.HashMap<java.lang.String, org.apache.thrift.AsyncProcessFunction<I, ? extends org.apache.thrift.TBase, ?>>()));
    }

    protected AsyncProcessor(I iface, java.util.Map<java.lang.String,  org.apache.thrift.AsyncProcessFunction<I, ? extends  org.apache.thrift.TBase, ?>> processMap) {
      super(iface, getProcessMap(processMap));
    }

    private static <I extends AsyncIface> java.util.Map<java.lang.String,  org.apache.thrift.AsyncProcessFunction<I, ? extends  org.apache.thrift.TBase,?>> getProcessMap(java.util.Map<java.lang.String,  org.apache.thrift.AsyncProcessFunction<I, ? extends  org.apache.thrift.TBase, ?>> processMap) {
      processMap.put("getMetaConf", new getMetaConf());
      processMap.put("setMetaConf", new setMetaConf());
      processMap.put("init_schema", new init_schema());
      processMap.put("create_catalog", new create_catalog());
      processMap.put("alter_catalog", new alter_catalog());
      processMap.put("get_catalog", new get_catalog());
      processMap.put("get_catalogs", new get_catalogs());
      processMap.put("drop_catalog", new drop_catalog());
      processMap.put("create_database", new create_database());
      processMap.put("get_database", new get_database());
      processMap.put("drop_database", new drop_database());
      processMap.put("get_databases", new get_databases());
      processMap.put("get_all_databases", new get_all_databases());
      processMap.put("alter_database", new alter_database());
      processMap.put("get_type", new get_type());
      processMap.put("create_type", new create_type());
      processMap.put("drop_type", new drop_type());
      processMap.put("get_type_all", new get_type_all());
      processMap.put("get_fields", new get_fields());
      processMap.put("get_fields_with_environment_context", new get_fields_with_environment_context());
      processMap.put("get_schema", new get_schema());
      processMap.put("get_schema_with_environment_context", new get_schema_with_environment_context());
      processMap.put("create_table", new create_table());
      processMap.put("create_table_with_environment_context", new create_table_with_environment_context());
      processMap.put("create_table_with_constraints", new create_table_with_constraints());
      processMap.put("drop_constraint", new drop_constraint());
      processMap.put("add_primary_key", new add_primary_key());
      processMap.put("add_foreign_key", new add_foreign_key());
      processMap.put("add_unique_constraint", new add_unique_constraint());
      processMap.put("add_not_null_constraint", new add_not_null_constraint());
      processMap.put("add_default_constraint", new add_default_constraint());
      processMap.put("add_check_constraint", new add_check_constraint());
      processMap.put("drop_table", new drop_table());
      processMap.put("drop_table_with_environment_context", new drop_table_with_environment_context());
      processMap.put("truncate_table", new truncate_table());
      processMap.put("get_tables", new get_tables());
      processMap.put("get_tables_by_type", new get_tables_by_type());
      processMap.put("get_materialized_views_for_rewriting", new get_materialized_views_for_rewriting());
      processMap.put("get_table_meta", new get_table_meta());
      processMap.put("get_all_tables", new get_all_tables());
      processMap.put("get_table", new get_table());
      processMap.put("get_table_objects_by_name", new get_table_objects_by_name());
      processMap.put("get_table_req", new get_table_req());
      processMap.put("get_table_objects_by_name_req", new get_table_objects_by_name_req());
      processMap.put("get_materialization_invalidation_info", new get_materialization_invalidation_info());
      processMap.put("update_creation_metadata", new update_creation_metadata());
      processMap.put("get_table_names_by_filter", new get_table_names_by_filter());
      processMap.put("alter_table", new alter_table());
      processMap.put("alter_table_with_environment_context", new alter_table_with_environment_context());
      processMap.put("alter_table_with_cascade", new alter_table_with_cascade());
      processMap.put("add_partition", new add_partition());
      processMap.put("add_partition_with_environment_context", new add_partition_with_environment_context());
      processMap.put("add_partitions", new add_partitions());
      processMap.put("add_partitions_pspec", new add_partitions_pspec());
      processMap.put("append_partition", new append_partition());
      processMap.put("add_partitions_req", new add_partitions_req());
      processMap.put("append_partition_with_environment_context", new append_partition_with_environment_context());
      processMap.put("append_partition_by_name", new append_partition_by_name());
      processMap.put("append_partition_by_name_with_environment_context", new append_partition_by_name_with_environment_context());
      processMap.put("drop_partition", new drop_partition());
      processMap.put("drop_partition_with_environment_context", new drop_partition_with_environment_context());
      processMap.put("drop_partition_by_name", new drop_partition_by_name());
      processMap.put("drop_partition_by_name_with_environment_context", new drop_partition_by_name_with_environment_context());
      processMap.put("drop_partitions_req", new drop_partitions_req());
      processMap.put("get_partition", new get_partition());
      processMap.put("exchange_partition", new exchange_partition());
      processMap.put("exchange_partitions", new exchange_partitions());
      processMap.put("get_partition_with_auth", new get_partition_with_auth());
      processMap.put("get_partition_by_name", new get_partition_by_name());
      processMap.put("get_partitions", new get_partitions());
      processMap.put("get_partitions_with_auth", new get_partitions_with_auth());
      processMap.put("get_partitions_pspec", new get_partitions_pspec());
      processMap.put("get_partition_names", new get_partition_names());
      processMap.put("get_partition_values", new get_partition_values());
      processMap.put("get_partitions_ps", new get_partitions_ps());
      processMap.put("get_partitions_ps_with_auth", new get_partitions_ps_with_auth());
      processMap.put("get_partition_names_ps", new get_partition_names_ps());
      processMap.put("get_partitions_by_filter", new get_partitions_by_filter());
      processMap.put("get_part_specs_by_filter", new get_part_specs_by_filter());
      processMap.put("get_partitions_by_expr", new get_partitions_by_expr());
      processMap.put("get_num_partitions_by_filter", new get_num_partitions_by_filter());
      processMap.put("get_partitions_by_names", new get_partitions_by_names());
      processMap.put("alter_partition", new alter_partition());
      processMap.put("alter_partitions", new alter_partitions());
      processMap.put("alter_partitions_with_environment_context", new alter_partitions_with_environment_context());
      processMap.put("alter_partition_with_environment_context", new alter_partition_with_environment_context());
      processMap.put("rename_partition", new rename_partition());
      processMap.put("partition_name_has_valid_characters", new partition_name_has_valid_characters());
      processMap.put("get_config_value", new get_config_value());
      processMap.put("partition_name_to_vals", new partition_name_to_vals());
      processMap.put("partition_name_to_spec", new partition_name_to_spec());
      processMap.put("markPartitionForEvent", new markPartitionForEvent());
      processMap.put("isPartitionMarkedForEvent", new isPartitionMarkedForEvent());
      processMap.put("get_primary_keys", new get_primary_keys());
      processMap.put("get_foreign_keys", new get_foreign_keys());
      processMap.put("get_unique_constraints", new get_unique_constraints());
      processMap.put("get_not_null_constraints", new get_not_null_constraints());
      processMap.put("get_default_constraints", new get_default_constraints());
      processMap.put("get_check_constraints", new get_check_constraints());
      processMap.put("update_table_column_statistics", new update_table_column_statistics());
      processMap.put("update_partition_column_statistics", new update_partition_column_statistics());
      processMap.put("get_table_column_statistics", new get_table_column_statistics());
      processMap.put("get_partition_column_statistics", new get_partition_column_statistics());
      processMap.put("get_table_statistics_req", new get_table_statistics_req());
      processMap.put("get_partitions_statistics_req", new get_partitions_statistics_req());
      processMap.put("get_aggr_stats_for", new get_aggr_stats_for());
      processMap.put("set_aggr_stats_for", new set_aggr_stats_for());
      processMap.put("delete_partition_column_statistics", new delete_partition_column_statistics());
      processMap.put("delete_table_column_statistics", new delete_table_column_statistics());
      processMap.put("create_function", new create_function());
      processMap.put("drop_function", new drop_function());
      processMap.put("alter_function", new alter_function());
      processMap.put("get_functions", new get_functions());
      processMap.put("get_function", new get_function());
      processMap.put("get_all_functions", new get_all_functions());
      processMap.put("create_role", new create_role());
      processMap.put("drop_role", new drop_role());
      processMap.put("get_role_names", new get_role_names());
      processMap.put("grant_role", new grant_role());
      processMap.put("revoke_role", new revoke_role());
      processMap.put("list_roles", new list_roles());
      processMap.put("grant_revoke_role", new grant_revoke_role());
      processMap.put("get_principals_in_role", new get_principals_in_role());
      processMap.put("get_role_grants_for_principal", new get_role_grants_for_principal());
      processMap.put("get_privilege_set", new get_privilege_set());
      processMap.put("list_privileges", new list_privileges());
      processMap.put("grant_privileges", new grant_privileges());
      processMap.put("revoke_privileges", new revoke_privileges());
      processMap.put("grant_revoke_privileges", new grant_revoke_privileges());
      processMap.put("refresh_privileges", new refresh_privileges());
      processMap.put("set_ugi", new set_ugi());
      processMap.put("get_delegation_token", new get_delegation_token());
      processMap.put("renew_delegation_token", new renew_delegation_token());
      processMap.put("cancel_delegation_token", new cancel_delegation_token());
      processMap.put("add_token", new add_token());
      processMap.put("remove_token", new remove_token());
      processMap.put("get_token", new get_token());
      processMap.put("get_all_token_identifiers", new get_all_token_identifiers());
      processMap.put("add_master_key", new add_master_key());
      processMap.put("update_master_key", new update_master_key());
      processMap.put("remove_master_key", new remove_master_key());
      processMap.put("get_master_keys", new get_master_keys());
      processMap.put("get_open_txns", new get_open_txns());
      processMap.put("get_open_txns_info", new get_open_txns_info());
      processMap.put("open_txns", new open_txns());
      processMap.put("abort_txn", new abort_txn());
      processMap.put("abort_txns", new abort_txns());
      processMap.put("commit_txn", new commit_txn());
      processMap.put("repl_tbl_writeid_state", new repl_tbl_writeid_state());
      processMap.put("get_valid_write_ids", new get_valid_write_ids());
      processMap.put("allocate_table_write_ids", new allocate_table_write_ids());
      processMap.put("lock", new lock());
      processMap.put("check_lock", new check_lock());
      processMap.put("unlock", new unlock());
      processMap.put("show_locks", new show_locks());
      processMap.put("heartbeat", new heartbeat());
      processMap.put("heartbeat_txn_range", new heartbeat_txn_range());
      processMap.put("compact", new compact());
      processMap.put("compact2", new compact2());
      processMap.put("show_compact", new show_compact());
      processMap.put("add_dynamic_partitions", new add_dynamic_partitions());
      processMap.put("get_next_notification", new get_next_notification());
      processMap.put("get_current_notificationEventId", new get_current_notificationEventId());
      processMap.put("get_notification_events_count", new get_notification_events_count());
      processMap.put("fire_listener_event", new fire_listener_event());
      processMap.put("flushCache", new flushCache());
      processMap.put("cm_recycle", new cm_recycle());
      processMap.put("get_file_metadata_by_expr", new get_file_metadata_by_expr());
      processMap.put("get_file_metadata", new get_file_metadata());
      processMap.put("put_file_metadata", new put_file_metadata());
      processMap.put("clear_file_metadata", new clear_file_metadata());
      processMap.put("cache_file_metadata", new cache_file_metadata());
      processMap.put("get_metastore_db_uuid", new get_metastore_db_uuid());
      processMap.put("create_resource_plan", new create_resource_plan());
      processMap.put("get_resource_plan", new get_resource_plan());
      processMap.put("get_active_resource_plan", new get_active_resource_plan());
      processMap.put("get_all_resource_plans", new get_all_resource_plans());
      processMap.put("alter_resource_plan", new alter_resource_plan());
      processMap.put("validate_resource_plan", new validate_resource_plan());
      processMap.put("drop_resource_plan", new drop_resource_plan());
      processMap.put("create_wm_trigger", new create_wm_trigger());
      processMap.put("alter_wm_trigger", new alter_wm_trigger());
      processMap.put("drop_wm_trigger", new drop_wm_trigger());
      processMap.put("get_triggers_for_resourceplan", new get_triggers_for_resourceplan());
      processMap.put("create_wm_pool", new create_wm_pool());
      processMap.put("alter_wm_pool", new alter_wm_pool());
      processMap.put("drop_wm_pool", new drop_wm_pool());
      processMap.put("create_or_update_wm_mapping", new create_or_update_wm_mapping());
      processMap.put("drop_wm_mapping", new drop_wm_mapping());
      processMap.put("create_or_drop_wm_trigger_to_pool_mapping", new create_or_drop_wm_trigger_to_pool_mapping());
      processMap.put("create_ischema", new create_ischema());
      processMap.put("alter_ischema", new alter_ischema());
      processMap.put("get_ischema", new get_ischema());
      processMap.put("drop_ischema", new drop_ischema());
      processMap.put("add_schema_version", new add_schema_version());
      processMap.put("get_schema_version", new get_schema_version());
      processMap.put("get_schema_latest_version", new get_schema_latest_version());
      processMap.put("get_schema_all_versions", new get_schema_all_versions());
      processMap.put("drop_schema_version", new drop_schema_version());
      processMap.put("get_schemas_by_cols", new get_schemas_by_cols());
      processMap.put("map_schema_version_to_serde", new map_schema_version_to_serde());
      processMap.put("set_schema_version_state", new set_schema_version_state());
      processMap.put("add_serde", new add_serde());
      processMap.put("get_serde", new get_serde());
      processMap.put("get_lock_materialization_rebuild", new get_lock_materialization_rebuild());
      processMap.put("heartbeat_lock_materialization_rebuild", new heartbeat_lock_materialization_rebuild());
      processMap.put("add_runtime_stats", new add_runtime_stats());
      processMap.put("get_runtime_stats", new get_runtime_stats());
      return processMap;
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class getMetaConf<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getMetaConf_args, java.lang.String> {
      public getMetaConf() {
        super("getMetaConf");
      }

      public getMetaConf_args getEmptyArgsInstance() {
        return new getMetaConf_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.lang.String> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
          public void onComplete(java.lang.String o) {
            getMetaConf_result result = new getMetaConf_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            getMetaConf_result result = new getMetaConf_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, getMetaConf_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
        iface.getMetaConf(args.key,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class setMetaConf<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, setMetaConf_args, Void> {
      public setMetaConf() {
        super("setMetaConf");
      }

      public setMetaConf_args getEmptyArgsInstance() {
        return new setMetaConf_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            setMetaConf_result result = new setMetaConf_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            setMetaConf_result result = new setMetaConf_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, setMetaConf_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.setMetaConf(args.key, args.value,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class init_schema<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, init_schema_args, java.lang.Boolean> {
      public init_schema() {
        super("init_schema");
      }

      public init_schema_args getEmptyArgsInstance() {
        return new init_schema_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
          public void onComplete(java.lang.Boolean o) {
            init_schema_result result = new init_schema_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            init_schema_result result = new init_schema_result();
            if (e instanceof MetaException) {
              result.ex = (MetaException) e;
              result.setExIsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, init_schema_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
        iface.init_schema(args.dbType, args.username, args.password,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_catalog<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, create_catalog_args, Void> {
      public create_catalog() {
        super("create_catalog");
      }

      public create_catalog_args getEmptyArgsInstance() {
        return new create_catalog_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            create_catalog_result result = new create_catalog_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            create_catalog_result result = new create_catalog_result();
            if (e instanceof AlreadyExistsException) {
              result.o1 = (AlreadyExistsException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof InvalidObjectException) {
              result.o2 = (InvalidObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, create_catalog_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.create_catalog(args.catalog,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_catalog<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, alter_catalog_args, Void> {
      public alter_catalog() {
        super("alter_catalog");
      }

      public alter_catalog_args getEmptyArgsInstance() {
        return new alter_catalog_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            alter_catalog_result result = new alter_catalog_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            alter_catalog_result result = new alter_catalog_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof InvalidOperationException) {
              result.o2 = (InvalidOperationException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, alter_catalog_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.alter_catalog(args.rqst,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_catalog<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_catalog_args, GetCatalogResponse> {
      public get_catalog() {
        super("get_catalog");
      }

      public get_catalog_args getEmptyArgsInstance() {
        return new get_catalog_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<GetCatalogResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<GetCatalogResponse>() { 
          public void onComplete(GetCatalogResponse o) {
            get_catalog_result result = new get_catalog_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_catalog_result result = new get_catalog_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_catalog_args args, org.apache.thrift.async.AsyncMethodCallback<GetCatalogResponse> resultHandler) throws org.apache.thrift.TException {
        iface.get_catalog(args.catName,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_catalogs<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_catalogs_args, GetCatalogsResponse> {
      public get_catalogs() {
        super("get_catalogs");
      }

      public get_catalogs_args getEmptyArgsInstance() {
        return new get_catalogs_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<GetCatalogsResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<GetCatalogsResponse>() { 
          public void onComplete(GetCatalogsResponse o) {
            get_catalogs_result result = new get_catalogs_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_catalogs_result result = new get_catalogs_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_catalogs_args args, org.apache.thrift.async.AsyncMethodCallback<GetCatalogsResponse> resultHandler) throws org.apache.thrift.TException {
        iface.get_catalogs(resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_catalog<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, drop_catalog_args, Void> {
      public drop_catalog() {
        super("drop_catalog");
      }

      public drop_catalog_args getEmptyArgsInstance() {
        return new drop_catalog_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            drop_catalog_result result = new drop_catalog_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            drop_catalog_result result = new drop_catalog_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof InvalidOperationException) {
              result.o2 = (InvalidOperationException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, drop_catalog_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.drop_catalog(args.catName,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_database<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, create_database_args, Void> {
      public create_database() {
        super("create_database");
      }

      public create_database_args getEmptyArgsInstance() {
        return new create_database_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            create_database_result result = new create_database_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            create_database_result result = new create_database_result();
            if (e instanceof AlreadyExistsException) {
              result.o1 = (AlreadyExistsException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof InvalidObjectException) {
              result.o2 = (InvalidObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, create_database_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.create_database(args.database,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_database<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_database_args, Database> {
      public get_database() {
        super("get_database");
      }

      public get_database_args getEmptyArgsInstance() {
        return new get_database_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Database> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Database>() { 
          public void onComplete(Database o) {
            get_database_result result = new get_database_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_database_result result = new get_database_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_database_args args, org.apache.thrift.async.AsyncMethodCallback<Database> resultHandler) throws org.apache.thrift.TException {
        iface.get_database(args.name,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_database<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, drop_database_args, Void> {
      public drop_database() {
        super("drop_database");
      }

      public drop_database_args getEmptyArgsInstance() {
        return new drop_database_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            drop_database_result result = new drop_database_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            drop_database_result result = new drop_database_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof InvalidOperationException) {
              result.o2 = (InvalidOperationException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, drop_database_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.drop_database(args.name, args.deleteData, args.cascade,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_databases<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_databases_args, java.util.List<java.lang.String>> {
      public get_databases() {
        super("get_databases");
      }

      public get_databases_args getEmptyArgsInstance() {
        return new get_databases_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>>() { 
          public void onComplete(java.util.List<java.lang.String> o) {
            get_databases_result result = new get_databases_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_databases_result result = new get_databases_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_databases_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
        iface.get_databases(args.pattern,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_all_databases<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_all_databases_args, java.util.List<java.lang.String>> {
      public get_all_databases() {
        super("get_all_databases");
      }

      public get_all_databases_args getEmptyArgsInstance() {
        return new get_all_databases_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>>() { 
          public void onComplete(java.util.List<java.lang.String> o) {
            get_all_databases_result result = new get_all_databases_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_all_databases_result result = new get_all_databases_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_all_databases_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
        iface.get_all_databases(resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_database<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, alter_database_args, Void> {
      public alter_database() {
        super("alter_database");
      }

      public alter_database_args getEmptyArgsInstance() {
        return new alter_database_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            alter_database_result result = new alter_database_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            alter_database_result result = new alter_database_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o2 = (NoSuchObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, alter_database_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.alter_database(args.dbname, args.db,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_type<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_type_args, Type> {
      public get_type() {
        super("get_type");
      }

      public get_type_args getEmptyArgsInstance() {
        return new get_type_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Type> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Type>() { 
          public void onComplete(Type o) {
            get_type_result result = new get_type_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_type_result result = new get_type_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o2 = (NoSuchObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_type_args args, org.apache.thrift.async.AsyncMethodCallback<Type> resultHandler) throws org.apache.thrift.TException {
        iface.get_type(args.name,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_type<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, create_type_args, java.lang.Boolean> {
      public create_type() {
        super("create_type");
      }

      public create_type_args getEmptyArgsInstance() {
        return new create_type_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
          public void onComplete(java.lang.Boolean o) {
            create_type_result result = new create_type_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            create_type_result result = new create_type_result();
            if (e instanceof AlreadyExistsException) {
              result.o1 = (AlreadyExistsException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof InvalidObjectException) {
              result.o2 = (InvalidObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, create_type_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
        iface.create_type(args.type,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_type<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, drop_type_args, java.lang.Boolean> {
      public drop_type() {
        super("drop_type");
      }

      public drop_type_args getEmptyArgsInstance() {
        return new drop_type_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
          public void onComplete(java.lang.Boolean o) {
            drop_type_result result = new drop_type_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            drop_type_result result = new drop_type_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o2 = (NoSuchObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, drop_type_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
        iface.drop_type(args.type,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_type_all<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_type_all_args, java.util.Map<java.lang.String,Type>> {
      public get_type_all() {
        super("get_type_all");
      }

      public get_type_all_args getEmptyArgsInstance() {
        return new get_type_all_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,Type>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,Type>>() { 
          public void onComplete(java.util.Map<java.lang.String,Type> o) {
            get_type_all_result result = new get_type_all_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_type_all_result result = new get_type_all_result();
            if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_type_all_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,Type>> resultHandler) throws org.apache.thrift.TException {
        iface.get_type_all(args.name,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_fields<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_fields_args, java.util.List<FieldSchema>> {
      public get_fields() {
        super("get_fields");
      }

      public get_fields_args getEmptyArgsInstance() {
        return new get_fields_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<FieldSchema>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<FieldSchema>>() { 
          public void onComplete(java.util.List<FieldSchema> o) {
            get_fields_result result = new get_fields_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_fields_result result = new get_fields_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof UnknownTableException) {
              result.o2 = (UnknownTableException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof UnknownDBException) {
              result.o3 = (UnknownDBException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_fields_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<FieldSchema>> resultHandler) throws org.apache.thrift.TException {
        iface.get_fields(args.db_name, args.table_name,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_fields_with_environment_context<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_fields_with_environment_context_args, java.util.List<FieldSchema>> {
      public get_fields_with_environment_context() {
        super("get_fields_with_environment_context");
      }

      public get_fields_with_environment_context_args getEmptyArgsInstance() {
        return new get_fields_with_environment_context_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<FieldSchema>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<FieldSchema>>() { 
          public void onComplete(java.util.List<FieldSchema> o) {
            get_fields_with_environment_context_result result = new get_fields_with_environment_context_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_fields_with_environment_context_result result = new get_fields_with_environment_context_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof UnknownTableException) {
              result.o2 = (UnknownTableException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof UnknownDBException) {
              result.o3 = (UnknownDBException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_fields_with_environment_context_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<FieldSchema>> resultHandler) throws org.apache.thrift.TException {
        iface.get_fields_with_environment_context(args.db_name, args.table_name, args.environment_context,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_schema<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_schema_args, java.util.List<FieldSchema>> {
      public get_schema() {
        super("get_schema");
      }

      public get_schema_args getEmptyArgsInstance() {
        return new get_schema_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<FieldSchema>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<FieldSchema>>() { 
          public void onComplete(java.util.List<FieldSchema> o) {
            get_schema_result result = new get_schema_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_schema_result result = new get_schema_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof UnknownTableException) {
              result.o2 = (UnknownTableException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof UnknownDBException) {
              result.o3 = (UnknownDBException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_schema_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<FieldSchema>> resultHandler) throws org.apache.thrift.TException {
        iface.get_schema(args.db_name, args.table_name,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_schema_with_environment_context<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_schema_with_environment_context_args, java.util.List<FieldSchema>> {
      public get_schema_with_environment_context() {
        super("get_schema_with_environment_context");
      }

      public get_schema_with_environment_context_args getEmptyArgsInstance() {
        return new get_schema_with_environment_context_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<FieldSchema>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<FieldSchema>>() { 
          public void onComplete(java.util.List<FieldSchema> o) {
            get_schema_with_environment_context_result result = new get_schema_with_environment_context_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_schema_with_environment_context_result result = new get_schema_with_environment_context_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof UnknownTableException) {
              result.o2 = (UnknownTableException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof UnknownDBException) {
              result.o3 = (UnknownDBException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_schema_with_environment_context_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<FieldSchema>> resultHandler) throws org.apache.thrift.TException {
        iface.get_schema_with_environment_context(args.db_name, args.table_name, args.environment_context,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_table<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, create_table_args, Void> {
      public create_table() {
        super("create_table");
      }

      public create_table_args getEmptyArgsInstance() {
        return new create_table_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            create_table_result result = new create_table_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            create_table_result result = new create_table_result();
            if (e instanceof AlreadyExistsException) {
              result.o1 = (AlreadyExistsException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof InvalidObjectException) {
              result.o2 = (InvalidObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o4 = (NoSuchObjectException) e;
              result.setO4IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, create_table_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.create_table(args.tbl,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_table_with_environment_context<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, create_table_with_environment_context_args, Void> {
      public create_table_with_environment_context() {
        super("create_table_with_environment_context");
      }

      public create_table_with_environment_context_args getEmptyArgsInstance() {
        return new create_table_with_environment_context_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            create_table_with_environment_context_result result = new create_table_with_environment_context_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            create_table_with_environment_context_result result = new create_table_with_environment_context_result();
            if (e instanceof AlreadyExistsException) {
              result.o1 = (AlreadyExistsException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof InvalidObjectException) {
              result.o2 = (InvalidObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o4 = (NoSuchObjectException) e;
              result.setO4IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, create_table_with_environment_context_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.create_table_with_environment_context(args.tbl, args.environment_context,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_table_with_constraints<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, create_table_with_constraints_args, Void> {
      public create_table_with_constraints() {
        super("create_table_with_constraints");
      }

      public create_table_with_constraints_args getEmptyArgsInstance() {
        return new create_table_with_constraints_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            create_table_with_constraints_result result = new create_table_with_constraints_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            create_table_with_constraints_result result = new create_table_with_constraints_result();
            if (e instanceof AlreadyExistsException) {
              result.o1 = (AlreadyExistsException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof InvalidObjectException) {
              result.o2 = (InvalidObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o4 = (NoSuchObjectException) e;
              result.setO4IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, create_table_with_constraints_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.create_table_with_constraints(args.tbl, args.primaryKeys, args.foreignKeys, args.uniqueConstraints, args.notNullConstraints, args.defaultConstraints, args.checkConstraints,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_constraint<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, drop_constraint_args, Void> {
      public drop_constraint() {
        super("drop_constraint");
      }

      public drop_constraint_args getEmptyArgsInstance() {
        return new drop_constraint_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            drop_constraint_result result = new drop_constraint_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            drop_constraint_result result = new drop_constraint_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, drop_constraint_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.drop_constraint(args.req,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_primary_key<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, add_primary_key_args, Void> {
      public add_primary_key() {
        super("add_primary_key");
      }

      public add_primary_key_args getEmptyArgsInstance() {
        return new add_primary_key_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            add_primary_key_result result = new add_primary_key_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            add_primary_key_result result = new add_primary_key_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, add_primary_key_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.add_primary_key(args.req,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_foreign_key<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, add_foreign_key_args, Void> {
      public add_foreign_key() {
        super("add_foreign_key");
      }

      public add_foreign_key_args getEmptyArgsInstance() {
        return new add_foreign_key_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            add_foreign_key_result result = new add_foreign_key_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            add_foreign_key_result result = new add_foreign_key_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, add_foreign_key_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.add_foreign_key(args.req,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_unique_constraint<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, add_unique_constraint_args, Void> {
      public add_unique_constraint() {
        super("add_unique_constraint");
      }

      public add_unique_constraint_args getEmptyArgsInstance() {
        return new add_unique_constraint_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            add_unique_constraint_result result = new add_unique_constraint_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            add_unique_constraint_result result = new add_unique_constraint_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, add_unique_constraint_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.add_unique_constraint(args.req,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_not_null_constraint<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, add_not_null_constraint_args, Void> {
      public add_not_null_constraint() {
        super("add_not_null_constraint");
      }

      public add_not_null_constraint_args getEmptyArgsInstance() {
        return new add_not_null_constraint_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            add_not_null_constraint_result result = new add_not_null_constraint_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            add_not_null_constraint_result result = new add_not_null_constraint_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, add_not_null_constraint_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.add_not_null_constraint(args.req,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_default_constraint<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, add_default_constraint_args, Void> {
      public add_default_constraint() {
        super("add_default_constraint");
      }

      public add_default_constraint_args getEmptyArgsInstance() {
        return new add_default_constraint_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            add_default_constraint_result result = new add_default_constraint_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            add_default_constraint_result result = new add_default_constraint_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, add_default_constraint_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.add_default_constraint(args.req,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_check_constraint<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, add_check_constraint_args, Void> {
      public add_check_constraint() {
        super("add_check_constraint");
      }

      public add_check_constraint_args getEmptyArgsInstance() {
        return new add_check_constraint_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            add_check_constraint_result result = new add_check_constraint_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            add_check_constraint_result result = new add_check_constraint_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, add_check_constraint_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.add_check_constraint(args.req,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_table<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, drop_table_args, Void> {
      public drop_table() {
        super("drop_table");
      }

      public drop_table_args getEmptyArgsInstance() {
        return new drop_table_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            drop_table_result result = new drop_table_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            drop_table_result result = new drop_table_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, drop_table_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.drop_table(args.dbname, args.name, args.deleteData,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_table_with_environment_context<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, drop_table_with_environment_context_args, Void> {
      public drop_table_with_environment_context() {
        super("drop_table_with_environment_context");
      }

      public drop_table_with_environment_context_args getEmptyArgsInstance() {
        return new drop_table_with_environment_context_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            drop_table_with_environment_context_result result = new drop_table_with_environment_context_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            drop_table_with_environment_context_result result = new drop_table_with_environment_context_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, drop_table_with_environment_context_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.drop_table_with_environment_context(args.dbname, args.name, args.deleteData, args.environment_context,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class truncate_table<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, truncate_table_args, Void> {
      public truncate_table() {
        super("truncate_table");
      }

      public truncate_table_args getEmptyArgsInstance() {
        return new truncate_table_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            truncate_table_result result = new truncate_table_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            truncate_table_result result = new truncate_table_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, truncate_table_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.truncate_table(args.dbName, args.tableName, args.partNames,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_tables<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_tables_args, java.util.List<java.lang.String>> {
      public get_tables() {
        super("get_tables");
      }

      public get_tables_args getEmptyArgsInstance() {
        return new get_tables_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>>() { 
          public void onComplete(java.util.List<java.lang.String> o) {
            get_tables_result result = new get_tables_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_tables_result result = new get_tables_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_tables_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
        iface.get_tables(args.db_name, args.pattern,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_tables_by_type<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_tables_by_type_args, java.util.List<java.lang.String>> {
      public get_tables_by_type() {
        super("get_tables_by_type");
      }

      public get_tables_by_type_args getEmptyArgsInstance() {
        return new get_tables_by_type_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>>() { 
          public void onComplete(java.util.List<java.lang.String> o) {
            get_tables_by_type_result result = new get_tables_by_type_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_tables_by_type_result result = new get_tables_by_type_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_tables_by_type_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
        iface.get_tables_by_type(args.db_name, args.pattern, args.tableType,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_materialized_views_for_rewriting<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_materialized_views_for_rewriting_args, java.util.List<java.lang.String>> {
      public get_materialized_views_for_rewriting() {
        super("get_materialized_views_for_rewriting");
      }

      public get_materialized_views_for_rewriting_args getEmptyArgsInstance() {
        return new get_materialized_views_for_rewriting_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>>() { 
          public void onComplete(java.util.List<java.lang.String> o) {
            get_materialized_views_for_rewriting_result result = new get_materialized_views_for_rewriting_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_materialized_views_for_rewriting_result result = new get_materialized_views_for_rewriting_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_materialized_views_for_rewriting_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
        iface.get_materialized_views_for_rewriting(args.db_name,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_meta<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_table_meta_args, java.util.List<TableMeta>> {
      public get_table_meta() {
        super("get_table_meta");
      }

      public get_table_meta_args getEmptyArgsInstance() {
        return new get_table_meta_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<TableMeta>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<TableMeta>>() { 
          public void onComplete(java.util.List<TableMeta> o) {
            get_table_meta_result result = new get_table_meta_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_table_meta_result result = new get_table_meta_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_table_meta_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<TableMeta>> resultHandler) throws org.apache.thrift.TException {
        iface.get_table_meta(args.db_patterns, args.tbl_patterns, args.tbl_types,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_all_tables<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_all_tables_args, java.util.List<java.lang.String>> {
      public get_all_tables() {
        super("get_all_tables");
      }

      public get_all_tables_args getEmptyArgsInstance() {
        return new get_all_tables_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>>() { 
          public void onComplete(java.util.List<java.lang.String> o) {
            get_all_tables_result result = new get_all_tables_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_all_tables_result result = new get_all_tables_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_all_tables_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
        iface.get_all_tables(args.db_name,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_table_args, Table> {
      public get_table() {
        super("get_table");
      }

      public get_table_args getEmptyArgsInstance() {
        return new get_table_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Table> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Table>() { 
          public void onComplete(Table o) {
            get_table_result result = new get_table_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_table_result result = new get_table_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o2 = (NoSuchObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_table_args args, org.apache.thrift.async.AsyncMethodCallback<Table> resultHandler) throws org.apache.thrift.TException {
        iface.get_table(args.dbname, args.tbl_name,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_objects_by_name<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_table_objects_by_name_args, java.util.List<Table>> {
      public get_table_objects_by_name() {
        super("get_table_objects_by_name");
      }

      public get_table_objects_by_name_args getEmptyArgsInstance() {
        return new get_table_objects_by_name_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<Table>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<Table>>() { 
          public void onComplete(java.util.List<Table> o) {
            get_table_objects_by_name_result result = new get_table_objects_by_name_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_table_objects_by_name_result result = new get_table_objects_by_name_result();
            if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_table_objects_by_name_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Table>> resultHandler) throws org.apache.thrift.TException {
        iface.get_table_objects_by_name(args.dbname, args.tbl_names,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_req<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_table_req_args, GetTableResult> {
      public get_table_req() {
        super("get_table_req");
      }

      public get_table_req_args getEmptyArgsInstance() {
        return new get_table_req_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<GetTableResult> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<GetTableResult>() { 
          public void onComplete(GetTableResult o) {
            get_table_req_result result = new get_table_req_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_table_req_result result = new get_table_req_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o2 = (NoSuchObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_table_req_args args, org.apache.thrift.async.AsyncMethodCallback<GetTableResult> resultHandler) throws org.apache.thrift.TException {
        iface.get_table_req(args.req,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_objects_by_name_req<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_table_objects_by_name_req_args, GetTablesResult> {
      public get_table_objects_by_name_req() {
        super("get_table_objects_by_name_req");
      }

      public get_table_objects_by_name_req_args getEmptyArgsInstance() {
        return new get_table_objects_by_name_req_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<GetTablesResult> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<GetTablesResult>() { 
          public void onComplete(GetTablesResult o) {
            get_table_objects_by_name_req_result result = new get_table_objects_by_name_req_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_table_objects_by_name_req_result result = new get_table_objects_by_name_req_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof InvalidOperationException) {
              result.o2 = (InvalidOperationException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof UnknownDBException) {
              result.o3 = (UnknownDBException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_table_objects_by_name_req_args args, org.apache.thrift.async.AsyncMethodCallback<GetTablesResult> resultHandler) throws org.apache.thrift.TException {
        iface.get_table_objects_by_name_req(args.req,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_materialization_invalidation_info<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_materialization_invalidation_info_args, Materialization> {
      public get_materialization_invalidation_info() {
        super("get_materialization_invalidation_info");
      }

      public get_materialization_invalidation_info_args getEmptyArgsInstance() {
        return new get_materialization_invalidation_info_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Materialization> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Materialization>() { 
          public void onComplete(Materialization o) {
            get_materialization_invalidation_info_result result = new get_materialization_invalidation_info_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_materialization_invalidation_info_result result = new get_materialization_invalidation_info_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof InvalidOperationException) {
              result.o2 = (InvalidOperationException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof UnknownDBException) {
              result.o3 = (UnknownDBException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_materialization_invalidation_info_args args, org.apache.thrift.async.AsyncMethodCallback<Materialization> resultHandler) throws org.apache.thrift.TException {
        iface.get_materialization_invalidation_info(args.creation_metadata, args.validTxnList,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class update_creation_metadata<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, update_creation_metadata_args, Void> {
      public update_creation_metadata() {
        super("update_creation_metadata");
      }

      public update_creation_metadata_args getEmptyArgsInstance() {
        return new update_creation_metadata_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            update_creation_metadata_result result = new update_creation_metadata_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            update_creation_metadata_result result = new update_creation_metadata_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof InvalidOperationException) {
              result.o2 = (InvalidOperationException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof UnknownDBException) {
              result.o3 = (UnknownDBException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, update_creation_metadata_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.update_creation_metadata(args.catName, args.dbname, args.tbl_name, args.creation_metadata,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_names_by_filter<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_table_names_by_filter_args, java.util.List<java.lang.String>> {
      public get_table_names_by_filter() {
        super("get_table_names_by_filter");
      }

      public get_table_names_by_filter_args getEmptyArgsInstance() {
        return new get_table_names_by_filter_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>>() { 
          public void onComplete(java.util.List<java.lang.String> o) {
            get_table_names_by_filter_result result = new get_table_names_by_filter_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_table_names_by_filter_result result = new get_table_names_by_filter_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof InvalidOperationException) {
              result.o2 = (InvalidOperationException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof UnknownDBException) {
              result.o3 = (UnknownDBException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_table_names_by_filter_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
        iface.get_table_names_by_filter(args.dbname, args.filter, args.max_tables,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_table<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, alter_table_args, Void> {
      public alter_table() {
        super("alter_table");
      }

      public alter_table_args getEmptyArgsInstance() {
        return new alter_table_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            alter_table_result result = new alter_table_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            alter_table_result result = new alter_table_result();
            if (e instanceof InvalidOperationException) {
              result.o1 = (InvalidOperationException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, alter_table_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.alter_table(args.dbname, args.tbl_name, args.new_tbl,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_table_with_environment_context<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, alter_table_with_environment_context_args, Void> {
      public alter_table_with_environment_context() {
        super("alter_table_with_environment_context");
      }

      public alter_table_with_environment_context_args getEmptyArgsInstance() {
        return new alter_table_with_environment_context_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            alter_table_with_environment_context_result result = new alter_table_with_environment_context_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            alter_table_with_environment_context_result result = new alter_table_with_environment_context_result();
            if (e instanceof InvalidOperationException) {
              result.o1 = (InvalidOperationException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, alter_table_with_environment_context_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.alter_table_with_environment_context(args.dbname, args.tbl_name, args.new_tbl, args.environment_context,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_table_with_cascade<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, alter_table_with_cascade_args, Void> {
      public alter_table_with_cascade() {
        super("alter_table_with_cascade");
      }

      public alter_table_with_cascade_args getEmptyArgsInstance() {
        return new alter_table_with_cascade_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            alter_table_with_cascade_result result = new alter_table_with_cascade_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            alter_table_with_cascade_result result = new alter_table_with_cascade_result();
            if (e instanceof InvalidOperationException) {
              result.o1 = (InvalidOperationException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, alter_table_with_cascade_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.alter_table_with_cascade(args.dbname, args.tbl_name, args.new_tbl, args.cascade,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_partition<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, add_partition_args, Partition> {
      public add_partition() {
        super("add_partition");
      }

      public add_partition_args getEmptyArgsInstance() {
        return new add_partition_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Partition> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Partition>() { 
          public void onComplete(Partition o) {
            add_partition_result result = new add_partition_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            add_partition_result result = new add_partition_result();
            if (e instanceof InvalidObjectException) {
              result.o1 = (InvalidObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof AlreadyExistsException) {
              result.o2 = (AlreadyExistsException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, add_partition_args args, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler) throws org.apache.thrift.TException {
        iface.add_partition(args.new_part,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_partition_with_environment_context<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, add_partition_with_environment_context_args, Partition> {
      public add_partition_with_environment_context() {
        super("add_partition_with_environment_context");
      }

      public add_partition_with_environment_context_args getEmptyArgsInstance() {
        return new add_partition_with_environment_context_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Partition> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Partition>() { 
          public void onComplete(Partition o) {
            add_partition_with_environment_context_result result = new add_partition_with_environment_context_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            add_partition_with_environment_context_result result = new add_partition_with_environment_context_result();
            if (e instanceof InvalidObjectException) {
              result.o1 = (InvalidObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof AlreadyExistsException) {
              result.o2 = (AlreadyExistsException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, add_partition_with_environment_context_args args, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler) throws org.apache.thrift.TException {
        iface.add_partition_with_environment_context(args.new_part, args.environment_context,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_partitions<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, add_partitions_args, java.lang.Integer> {
      public add_partitions() {
        super("add_partitions");
      }

      public add_partitions_args getEmptyArgsInstance() {
        return new add_partitions_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Integer> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Integer>() { 
          public void onComplete(java.lang.Integer o) {
            add_partitions_result result = new add_partitions_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            add_partitions_result result = new add_partitions_result();
            if (e instanceof InvalidObjectException) {
              result.o1 = (InvalidObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof AlreadyExistsException) {
              result.o2 = (AlreadyExistsException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, add_partitions_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Integer> resultHandler) throws org.apache.thrift.TException {
        iface.add_partitions(args.new_parts,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_partitions_pspec<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, add_partitions_pspec_args, java.lang.Integer> {
      public add_partitions_pspec() {
        super("add_partitions_pspec");
      }

      public add_partitions_pspec_args getEmptyArgsInstance() {
        return new add_partitions_pspec_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Integer> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Integer>() { 
          public void onComplete(java.lang.Integer o) {
            add_partitions_pspec_result result = new add_partitions_pspec_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            add_partitions_pspec_result result = new add_partitions_pspec_result();
            if (e instanceof InvalidObjectException) {
              result.o1 = (InvalidObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof AlreadyExistsException) {
              result.o2 = (AlreadyExistsException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, add_partitions_pspec_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Integer> resultHandler) throws org.apache.thrift.TException {
        iface.add_partitions_pspec(args.new_parts,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class append_partition<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, append_partition_args, Partition> {
      public append_partition() {
        super("append_partition");
      }

      public append_partition_args getEmptyArgsInstance() {
        return new append_partition_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Partition> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Partition>() { 
          public void onComplete(Partition o) {
            append_partition_result result = new append_partition_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            append_partition_result result = new append_partition_result();
            if (e instanceof InvalidObjectException) {
              result.o1 = (InvalidObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof AlreadyExistsException) {
              result.o2 = (AlreadyExistsException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, append_partition_args args, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler) throws org.apache.thrift.TException {
        iface.append_partition(args.db_name, args.tbl_name, args.part_vals,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_partitions_req<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, add_partitions_req_args, AddPartitionsResult> {
      public add_partitions_req() {
        super("add_partitions_req");
      }

      public add_partitions_req_args getEmptyArgsInstance() {
        return new add_partitions_req_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<AddPartitionsResult> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<AddPartitionsResult>() { 
          public void onComplete(AddPartitionsResult o) {
            add_partitions_req_result result = new add_partitions_req_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            add_partitions_req_result result = new add_partitions_req_result();
            if (e instanceof InvalidObjectException) {
              result.o1 = (InvalidObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof AlreadyExistsException) {
              result.o2 = (AlreadyExistsException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, add_partitions_req_args args, org.apache.thrift.async.AsyncMethodCallback<AddPartitionsResult> resultHandler) throws org.apache.thrift.TException {
        iface.add_partitions_req(args.request,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class append_partition_with_environment_context<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, append_partition_with_environment_context_args, Partition> {
      public append_partition_with_environment_context() {
        super("append_partition_with_environment_context");
      }

      public append_partition_with_environment_context_args getEmptyArgsInstance() {
        return new append_partition_with_environment_context_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Partition> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Partition>() { 
          public void onComplete(Partition o) {
            append_partition_with_environment_context_result result = new append_partition_with_environment_context_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            append_partition_with_environment_context_result result = new append_partition_with_environment_context_result();
            if (e instanceof InvalidObjectException) {
              result.o1 = (InvalidObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof AlreadyExistsException) {
              result.o2 = (AlreadyExistsException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, append_partition_with_environment_context_args args, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler) throws org.apache.thrift.TException {
        iface.append_partition_with_environment_context(args.db_name, args.tbl_name, args.part_vals, args.environment_context,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class append_partition_by_name<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, append_partition_by_name_args, Partition> {
      public append_partition_by_name() {
        super("append_partition_by_name");
      }

      public append_partition_by_name_args getEmptyArgsInstance() {
        return new append_partition_by_name_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Partition> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Partition>() { 
          public void onComplete(Partition o) {
            append_partition_by_name_result result = new append_partition_by_name_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            append_partition_by_name_result result = new append_partition_by_name_result();
            if (e instanceof InvalidObjectException) {
              result.o1 = (InvalidObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof AlreadyExistsException) {
              result.o2 = (AlreadyExistsException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, append_partition_by_name_args args, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler) throws org.apache.thrift.TException {
        iface.append_partition_by_name(args.db_name, args.tbl_name, args.part_name,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class append_partition_by_name_with_environment_context<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, append_partition_by_name_with_environment_context_args, Partition> {
      public append_partition_by_name_with_environment_context() {
        super("append_partition_by_name_with_environment_context");
      }

      public append_partition_by_name_with_environment_context_args getEmptyArgsInstance() {
        return new append_partition_by_name_with_environment_context_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Partition> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Partition>() { 
          public void onComplete(Partition o) {
            append_partition_by_name_with_environment_context_result result = new append_partition_by_name_with_environment_context_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            append_partition_by_name_with_environment_context_result result = new append_partition_by_name_with_environment_context_result();
            if (e instanceof InvalidObjectException) {
              result.o1 = (InvalidObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof AlreadyExistsException) {
              result.o2 = (AlreadyExistsException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, append_partition_by_name_with_environment_context_args args, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler) throws org.apache.thrift.TException {
        iface.append_partition_by_name_with_environment_context(args.db_name, args.tbl_name, args.part_name, args.environment_context,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_partition<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, drop_partition_args, java.lang.Boolean> {
      public drop_partition() {
        super("drop_partition");
      }

      public drop_partition_args getEmptyArgsInstance() {
        return new drop_partition_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
          public void onComplete(java.lang.Boolean o) {
            drop_partition_result result = new drop_partition_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            drop_partition_result result = new drop_partition_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, drop_partition_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
        iface.drop_partition(args.db_name, args.tbl_name, args.part_vals, args.deleteData,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_partition_with_environment_context<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, drop_partition_with_environment_context_args, java.lang.Boolean> {
      public drop_partition_with_environment_context() {
        super("drop_partition_with_environment_context");
      }

      public drop_partition_with_environment_context_args getEmptyArgsInstance() {
        return new drop_partition_with_environment_context_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
          public void onComplete(java.lang.Boolean o) {
            drop_partition_with_environment_context_result result = new drop_partition_with_environment_context_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            drop_partition_with_environment_context_result result = new drop_partition_with_environment_context_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, drop_partition_with_environment_context_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
        iface.drop_partition_with_environment_context(args.db_name, args.tbl_name, args.part_vals, args.deleteData, args.environment_context,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_partition_by_name<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, drop_partition_by_name_args, java.lang.Boolean> {
      public drop_partition_by_name() {
        super("drop_partition_by_name");
      }

      public drop_partition_by_name_args getEmptyArgsInstance() {
        return new drop_partition_by_name_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
          public void onComplete(java.lang.Boolean o) {
            drop_partition_by_name_result result = new drop_partition_by_name_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            drop_partition_by_name_result result = new drop_partition_by_name_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, drop_partition_by_name_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
        iface.drop_partition_by_name(args.db_name, args.tbl_name, args.part_name, args.deleteData,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_partition_by_name_with_environment_context<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, drop_partition_by_name_with_environment_context_args, java.lang.Boolean> {
      public drop_partition_by_name_with_environment_context() {
        super("drop_partition_by_name_with_environment_context");
      }

      public drop_partition_by_name_with_environment_context_args getEmptyArgsInstance() {
        return new drop_partition_by_name_with_environment_context_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
          public void onComplete(java.lang.Boolean o) {
            drop_partition_by_name_with_environment_context_result result = new drop_partition_by_name_with_environment_context_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            drop_partition_by_name_with_environment_context_result result = new drop_partition_by_name_with_environment_context_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, drop_partition_by_name_with_environment_context_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
        iface.drop_partition_by_name_with_environment_context(args.db_name, args.tbl_name, args.part_name, args.deleteData, args.environment_context,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_partitions_req<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, drop_partitions_req_args, DropPartitionsResult> {
      public drop_partitions_req() {
        super("drop_partitions_req");
      }

      public drop_partitions_req_args getEmptyArgsInstance() {
        return new drop_partitions_req_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<DropPartitionsResult> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<DropPartitionsResult>() { 
          public void onComplete(DropPartitionsResult o) {
            drop_partitions_req_result result = new drop_partitions_req_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            drop_partitions_req_result result = new drop_partitions_req_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, drop_partitions_req_args args, org.apache.thrift.async.AsyncMethodCallback<DropPartitionsResult> resultHandler) throws org.apache.thrift.TException {
        iface.drop_partitions_req(args.req,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_partition_args, Partition> {
      public get_partition() {
        super("get_partition");
      }

      public get_partition_args getEmptyArgsInstance() {
        return new get_partition_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Partition> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Partition>() { 
          public void onComplete(Partition o) {
            get_partition_result result = new get_partition_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_partition_result result = new get_partition_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o2 = (NoSuchObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_partition_args args, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler) throws org.apache.thrift.TException {
        iface.get_partition(args.db_name, args.tbl_name, args.part_vals,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class exchange_partition<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, exchange_partition_args, Partition> {
      public exchange_partition() {
        super("exchange_partition");
      }

      public exchange_partition_args getEmptyArgsInstance() {
        return new exchange_partition_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Partition> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Partition>() { 
          public void onComplete(Partition o) {
            exchange_partition_result result = new exchange_partition_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            exchange_partition_result result = new exchange_partition_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o2 = (NoSuchObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof InvalidObjectException) {
              result.o3 = (InvalidObjectException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof InvalidInputException) {
              result.o4 = (InvalidInputException) e;
              result.setO4IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, exchange_partition_args args, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler) throws org.apache.thrift.TException {
        iface.exchange_partition(args.partitionSpecs, args.source_db, args.source_table_name, args.dest_db, args.dest_table_name,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class exchange_partitions<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, exchange_partitions_args, java.util.List<Partition>> {
      public exchange_partitions() {
        super("exchange_partitions");
      }

      public exchange_partitions_args getEmptyArgsInstance() {
        return new exchange_partitions_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>>() { 
          public void onComplete(java.util.List<Partition> o) {
            exchange_partitions_result result = new exchange_partitions_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            exchange_partitions_result result = new exchange_partitions_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o2 = (NoSuchObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof InvalidObjectException) {
              result.o3 = (InvalidObjectException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof InvalidInputException) {
              result.o4 = (InvalidInputException) e;
              result.setO4IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, exchange_partitions_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> resultHandler) throws org.apache.thrift.TException {
        iface.exchange_partitions(args.partitionSpecs, args.source_db, args.source_table_name, args.dest_db, args.dest_table_name,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition_with_auth<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_partition_with_auth_args, Partition> {
      public get_partition_with_auth() {
        super("get_partition_with_auth");
      }

      public get_partition_with_auth_args getEmptyArgsInstance() {
        return new get_partition_with_auth_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Partition> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Partition>() { 
          public void onComplete(Partition o) {
            get_partition_with_auth_result result = new get_partition_with_auth_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_partition_with_auth_result result = new get_partition_with_auth_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o2 = (NoSuchObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_partition_with_auth_args args, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler) throws org.apache.thrift.TException {
        iface.get_partition_with_auth(args.db_name, args.tbl_name, args.part_vals, args.user_name, args.group_names,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition_by_name<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_partition_by_name_args, Partition> {
      public get_partition_by_name() {
        super("get_partition_by_name");
      }

      public get_partition_by_name_args getEmptyArgsInstance() {
        return new get_partition_by_name_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Partition> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Partition>() { 
          public void onComplete(Partition o) {
            get_partition_by_name_result result = new get_partition_by_name_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_partition_by_name_result result = new get_partition_by_name_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o2 = (NoSuchObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_partition_by_name_args args, org.apache.thrift.async.AsyncMethodCallback<Partition> resultHandler) throws org.apache.thrift.TException {
        iface.get_partition_by_name(args.db_name, args.tbl_name, args.part_name,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_partitions_args, java.util.List<Partition>> {
      public get_partitions() {
        super("get_partitions");
      }

      public get_partitions_args getEmptyArgsInstance() {
        return new get_partitions_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>>() { 
          public void onComplete(java.util.List<Partition> o) {
            get_partitions_result result = new get_partitions_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_partitions_result result = new get_partitions_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_partitions_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> resultHandler) throws org.apache.thrift.TException {
        iface.get_partitions(args.db_name, args.tbl_name, args.max_parts,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_with_auth<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_partitions_with_auth_args, java.util.List<Partition>> {
      public get_partitions_with_auth() {
        super("get_partitions_with_auth");
      }

      public get_partitions_with_auth_args getEmptyArgsInstance() {
        return new get_partitions_with_auth_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>>() { 
          public void onComplete(java.util.List<Partition> o) {
            get_partitions_with_auth_result result = new get_partitions_with_auth_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_partitions_with_auth_result result = new get_partitions_with_auth_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_partitions_with_auth_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> resultHandler) throws org.apache.thrift.TException {
        iface.get_partitions_with_auth(args.db_name, args.tbl_name, args.max_parts, args.user_name, args.group_names,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_pspec<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_partitions_pspec_args, java.util.List<PartitionSpec>> {
      public get_partitions_pspec() {
        super("get_partitions_pspec");
      }

      public get_partitions_pspec_args getEmptyArgsInstance() {
        return new get_partitions_pspec_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<PartitionSpec>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<PartitionSpec>>() { 
          public void onComplete(java.util.List<PartitionSpec> o) {
            get_partitions_pspec_result result = new get_partitions_pspec_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_partitions_pspec_result result = new get_partitions_pspec_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_partitions_pspec_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<PartitionSpec>> resultHandler) throws org.apache.thrift.TException {
        iface.get_partitions_pspec(args.db_name, args.tbl_name, args.max_parts,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition_names<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_partition_names_args, java.util.List<java.lang.String>> {
      public get_partition_names() {
        super("get_partition_names");
      }

      public get_partition_names_args getEmptyArgsInstance() {
        return new get_partition_names_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>>() { 
          public void onComplete(java.util.List<java.lang.String> o) {
            get_partition_names_result result = new get_partition_names_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_partition_names_result result = new get_partition_names_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_partition_names_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
        iface.get_partition_names(args.db_name, args.tbl_name, args.max_parts,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition_values<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_partition_values_args, PartitionValuesResponse> {
      public get_partition_values() {
        super("get_partition_values");
      }

      public get_partition_values_args getEmptyArgsInstance() {
        return new get_partition_values_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<PartitionValuesResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<PartitionValuesResponse>() { 
          public void onComplete(PartitionValuesResponse o) {
            get_partition_values_result result = new get_partition_values_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_partition_values_result result = new get_partition_values_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o2 = (NoSuchObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_partition_values_args args, org.apache.thrift.async.AsyncMethodCallback<PartitionValuesResponse> resultHandler) throws org.apache.thrift.TException {
        iface.get_partition_values(args.request,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_ps<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_partitions_ps_args, java.util.List<Partition>> {
      public get_partitions_ps() {
        super("get_partitions_ps");
      }

      public get_partitions_ps_args getEmptyArgsInstance() {
        return new get_partitions_ps_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>>() { 
          public void onComplete(java.util.List<Partition> o) {
            get_partitions_ps_result result = new get_partitions_ps_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_partitions_ps_result result = new get_partitions_ps_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o2 = (NoSuchObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_partitions_ps_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> resultHandler) throws org.apache.thrift.TException {
        iface.get_partitions_ps(args.db_name, args.tbl_name, args.part_vals, args.max_parts,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_ps_with_auth<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_partitions_ps_with_auth_args, java.util.List<Partition>> {
      public get_partitions_ps_with_auth() {
        super("get_partitions_ps_with_auth");
      }

      public get_partitions_ps_with_auth_args getEmptyArgsInstance() {
        return new get_partitions_ps_with_auth_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>>() { 
          public void onComplete(java.util.List<Partition> o) {
            get_partitions_ps_with_auth_result result = new get_partitions_ps_with_auth_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_partitions_ps_with_auth_result result = new get_partitions_ps_with_auth_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_partitions_ps_with_auth_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> resultHandler) throws org.apache.thrift.TException {
        iface.get_partitions_ps_with_auth(args.db_name, args.tbl_name, args.part_vals, args.max_parts, args.user_name, args.group_names,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition_names_ps<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_partition_names_ps_args, java.util.List<java.lang.String>> {
      public get_partition_names_ps() {
        super("get_partition_names_ps");
      }

      public get_partition_names_ps_args getEmptyArgsInstance() {
        return new get_partition_names_ps_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>>() { 
          public void onComplete(java.util.List<java.lang.String> o) {
            get_partition_names_ps_result result = new get_partition_names_ps_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_partition_names_ps_result result = new get_partition_names_ps_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o2 = (NoSuchObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_partition_names_ps_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
        iface.get_partition_names_ps(args.db_name, args.tbl_name, args.part_vals, args.max_parts,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_by_filter<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_partitions_by_filter_args, java.util.List<Partition>> {
      public get_partitions_by_filter() {
        super("get_partitions_by_filter");
      }

      public get_partitions_by_filter_args getEmptyArgsInstance() {
        return new get_partitions_by_filter_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>>() { 
          public void onComplete(java.util.List<Partition> o) {
            get_partitions_by_filter_result result = new get_partitions_by_filter_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_partitions_by_filter_result result = new get_partitions_by_filter_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o2 = (NoSuchObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_partitions_by_filter_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> resultHandler) throws org.apache.thrift.TException {
        iface.get_partitions_by_filter(args.db_name, args.tbl_name, args.filter, args.max_parts,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_part_specs_by_filter<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_part_specs_by_filter_args, java.util.List<PartitionSpec>> {
      public get_part_specs_by_filter() {
        super("get_part_specs_by_filter");
      }

      public get_part_specs_by_filter_args getEmptyArgsInstance() {
        return new get_part_specs_by_filter_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<PartitionSpec>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<PartitionSpec>>() { 
          public void onComplete(java.util.List<PartitionSpec> o) {
            get_part_specs_by_filter_result result = new get_part_specs_by_filter_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_part_specs_by_filter_result result = new get_part_specs_by_filter_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o2 = (NoSuchObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_part_specs_by_filter_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<PartitionSpec>> resultHandler) throws org.apache.thrift.TException {
        iface.get_part_specs_by_filter(args.db_name, args.tbl_name, args.filter, args.max_parts,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_by_expr<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_partitions_by_expr_args, PartitionsByExprResult> {
      public get_partitions_by_expr() {
        super("get_partitions_by_expr");
      }

      public get_partitions_by_expr_args getEmptyArgsInstance() {
        return new get_partitions_by_expr_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<PartitionsByExprResult> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<PartitionsByExprResult>() { 
          public void onComplete(PartitionsByExprResult o) {
            get_partitions_by_expr_result result = new get_partitions_by_expr_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_partitions_by_expr_result result = new get_partitions_by_expr_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o2 = (NoSuchObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_partitions_by_expr_args args, org.apache.thrift.async.AsyncMethodCallback<PartitionsByExprResult> resultHandler) throws org.apache.thrift.TException {
        iface.get_partitions_by_expr(args.req,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_num_partitions_by_filter<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_num_partitions_by_filter_args, java.lang.Integer> {
      public get_num_partitions_by_filter() {
        super("get_num_partitions_by_filter");
      }

      public get_num_partitions_by_filter_args getEmptyArgsInstance() {
        return new get_num_partitions_by_filter_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Integer> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Integer>() { 
          public void onComplete(java.lang.Integer o) {
            get_num_partitions_by_filter_result result = new get_num_partitions_by_filter_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_num_partitions_by_filter_result result = new get_num_partitions_by_filter_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o2 = (NoSuchObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_num_partitions_by_filter_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Integer> resultHandler) throws org.apache.thrift.TException {
        iface.get_num_partitions_by_filter(args.db_name, args.tbl_name, args.filter,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_by_names<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_partitions_by_names_args, java.util.List<Partition>> {
      public get_partitions_by_names() {
        super("get_partitions_by_names");
      }

      public get_partitions_by_names_args getEmptyArgsInstance() {
        return new get_partitions_by_names_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>>() { 
          public void onComplete(java.util.List<Partition> o) {
            get_partitions_by_names_result result = new get_partitions_by_names_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_partitions_by_names_result result = new get_partitions_by_names_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o2 = (NoSuchObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_partitions_by_names_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Partition>> resultHandler) throws org.apache.thrift.TException {
        iface.get_partitions_by_names(args.db_name, args.tbl_name, args.names,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_partition<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, alter_partition_args, Void> {
      public alter_partition() {
        super("alter_partition");
      }

      public alter_partition_args getEmptyArgsInstance() {
        return new alter_partition_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            alter_partition_result result = new alter_partition_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            alter_partition_result result = new alter_partition_result();
            if (e instanceof InvalidOperationException) {
              result.o1 = (InvalidOperationException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, alter_partition_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.alter_partition(args.db_name, args.tbl_name, args.new_part,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_partitions<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, alter_partitions_args, Void> {
      public alter_partitions() {
        super("alter_partitions");
      }

      public alter_partitions_args getEmptyArgsInstance() {
        return new alter_partitions_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            alter_partitions_result result = new alter_partitions_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            alter_partitions_result result = new alter_partitions_result();
            if (e instanceof InvalidOperationException) {
              result.o1 = (InvalidOperationException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, alter_partitions_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.alter_partitions(args.db_name, args.tbl_name, args.new_parts,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_partitions_with_environment_context<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, alter_partitions_with_environment_context_args, Void> {
      public alter_partitions_with_environment_context() {
        super("alter_partitions_with_environment_context");
      }

      public alter_partitions_with_environment_context_args getEmptyArgsInstance() {
        return new alter_partitions_with_environment_context_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            alter_partitions_with_environment_context_result result = new alter_partitions_with_environment_context_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            alter_partitions_with_environment_context_result result = new alter_partitions_with_environment_context_result();
            if (e instanceof InvalidOperationException) {
              result.o1 = (InvalidOperationException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, alter_partitions_with_environment_context_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.alter_partitions_with_environment_context(args.db_name, args.tbl_name, args.new_parts, args.environment_context,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_partition_with_environment_context<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, alter_partition_with_environment_context_args, Void> {
      public alter_partition_with_environment_context() {
        super("alter_partition_with_environment_context");
      }

      public alter_partition_with_environment_context_args getEmptyArgsInstance() {
        return new alter_partition_with_environment_context_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            alter_partition_with_environment_context_result result = new alter_partition_with_environment_context_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            alter_partition_with_environment_context_result result = new alter_partition_with_environment_context_result();
            if (e instanceof InvalidOperationException) {
              result.o1 = (InvalidOperationException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, alter_partition_with_environment_context_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.alter_partition_with_environment_context(args.db_name, args.tbl_name, args.new_part, args.environment_context,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class rename_partition<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, rename_partition_args, Void> {
      public rename_partition() {
        super("rename_partition");
      }

      public rename_partition_args getEmptyArgsInstance() {
        return new rename_partition_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            rename_partition_result result = new rename_partition_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            rename_partition_result result = new rename_partition_result();
            if (e instanceof InvalidOperationException) {
              result.o1 = (InvalidOperationException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, rename_partition_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.rename_partition(args.db_name, args.tbl_name, args.part_vals, args.new_part,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class partition_name_has_valid_characters<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, partition_name_has_valid_characters_args, java.lang.Boolean> {
      public partition_name_has_valid_characters() {
        super("partition_name_has_valid_characters");
      }

      public partition_name_has_valid_characters_args getEmptyArgsInstance() {
        return new partition_name_has_valid_characters_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
          public void onComplete(java.lang.Boolean o) {
            partition_name_has_valid_characters_result result = new partition_name_has_valid_characters_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            partition_name_has_valid_characters_result result = new partition_name_has_valid_characters_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, partition_name_has_valid_characters_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
        iface.partition_name_has_valid_characters(args.part_vals, args.throw_exception,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_config_value<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_config_value_args, java.lang.String> {
      public get_config_value() {
        super("get_config_value");
      }

      public get_config_value_args getEmptyArgsInstance() {
        return new get_config_value_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.lang.String> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
          public void onComplete(java.lang.String o) {
            get_config_value_result result = new get_config_value_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_config_value_result result = new get_config_value_result();
            if (e instanceof ConfigValSecurityException) {
              result.o1 = (ConfigValSecurityException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_config_value_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
        iface.get_config_value(args.name, args.defaultValue,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class partition_name_to_vals<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, partition_name_to_vals_args, java.util.List<java.lang.String>> {
      public partition_name_to_vals() {
        super("partition_name_to_vals");
      }

      public partition_name_to_vals_args getEmptyArgsInstance() {
        return new partition_name_to_vals_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>>() { 
          public void onComplete(java.util.List<java.lang.String> o) {
            partition_name_to_vals_result result = new partition_name_to_vals_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            partition_name_to_vals_result result = new partition_name_to_vals_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, partition_name_to_vals_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
        iface.partition_name_to_vals(args.part_name,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class partition_name_to_spec<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, partition_name_to_spec_args, java.util.Map<java.lang.String,java.lang.String>> {
      public partition_name_to_spec() {
        super("partition_name_to_spec");
      }

      public partition_name_to_spec_args getEmptyArgsInstance() {
        return new partition_name_to_spec_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,java.lang.String>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,java.lang.String>>() { 
          public void onComplete(java.util.Map<java.lang.String,java.lang.String> o) {
            partition_name_to_spec_result result = new partition_name_to_spec_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            partition_name_to_spec_result result = new partition_name_to_spec_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, partition_name_to_spec_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,java.lang.String>> resultHandler) throws org.apache.thrift.TException {
        iface.partition_name_to_spec(args.part_name,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class markPartitionForEvent<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, markPartitionForEvent_args, Void> {
      public markPartitionForEvent() {
        super("markPartitionForEvent");
      }

      public markPartitionForEvent_args getEmptyArgsInstance() {
        return new markPartitionForEvent_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            markPartitionForEvent_result result = new markPartitionForEvent_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            markPartitionForEvent_result result = new markPartitionForEvent_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o2 = (NoSuchObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof UnknownDBException) {
              result.o3 = (UnknownDBException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof UnknownTableException) {
              result.o4 = (UnknownTableException) e;
              result.setO4IsSet(true);
              msg = result;
            } else if (e instanceof UnknownPartitionException) {
              result.o5 = (UnknownPartitionException) e;
              result.setO5IsSet(true);
              msg = result;
            } else if (e instanceof InvalidPartitionException) {
              result.o6 = (InvalidPartitionException) e;
              result.setO6IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, markPartitionForEvent_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.markPartitionForEvent(args.db_name, args.tbl_name, args.part_vals, args.eventType,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class isPartitionMarkedForEvent<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, isPartitionMarkedForEvent_args, java.lang.Boolean> {
      public isPartitionMarkedForEvent() {
        super("isPartitionMarkedForEvent");
      }

      public isPartitionMarkedForEvent_args getEmptyArgsInstance() {
        return new isPartitionMarkedForEvent_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
          public void onComplete(java.lang.Boolean o) {
            isPartitionMarkedForEvent_result result = new isPartitionMarkedForEvent_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            isPartitionMarkedForEvent_result result = new isPartitionMarkedForEvent_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o2 = (NoSuchObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof UnknownDBException) {
              result.o3 = (UnknownDBException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof UnknownTableException) {
              result.o4 = (UnknownTableException) e;
              result.setO4IsSet(true);
              msg = result;
            } else if (e instanceof UnknownPartitionException) {
              result.o5 = (UnknownPartitionException) e;
              result.setO5IsSet(true);
              msg = result;
            } else if (e instanceof InvalidPartitionException) {
              result.o6 = (InvalidPartitionException) e;
              result.setO6IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, isPartitionMarkedForEvent_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
        iface.isPartitionMarkedForEvent(args.db_name, args.tbl_name, args.part_vals, args.eventType,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_primary_keys<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_primary_keys_args, PrimaryKeysResponse> {
      public get_primary_keys() {
        super("get_primary_keys");
      }

      public get_primary_keys_args getEmptyArgsInstance() {
        return new get_primary_keys_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<PrimaryKeysResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<PrimaryKeysResponse>() { 
          public void onComplete(PrimaryKeysResponse o) {
            get_primary_keys_result result = new get_primary_keys_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_primary_keys_result result = new get_primary_keys_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o2 = (NoSuchObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_primary_keys_args args, org.apache.thrift.async.AsyncMethodCallback<PrimaryKeysResponse> resultHandler) throws org.apache.thrift.TException {
        iface.get_primary_keys(args.request,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_foreign_keys<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_foreign_keys_args, ForeignKeysResponse> {
      public get_foreign_keys() {
        super("get_foreign_keys");
      }

      public get_foreign_keys_args getEmptyArgsInstance() {
        return new get_foreign_keys_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<ForeignKeysResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<ForeignKeysResponse>() { 
          public void onComplete(ForeignKeysResponse o) {
            get_foreign_keys_result result = new get_foreign_keys_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_foreign_keys_result result = new get_foreign_keys_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o2 = (NoSuchObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_foreign_keys_args args, org.apache.thrift.async.AsyncMethodCallback<ForeignKeysResponse> resultHandler) throws org.apache.thrift.TException {
        iface.get_foreign_keys(args.request,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_unique_constraints<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_unique_constraints_args, UniqueConstraintsResponse> {
      public get_unique_constraints() {
        super("get_unique_constraints");
      }

      public get_unique_constraints_args getEmptyArgsInstance() {
        return new get_unique_constraints_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<UniqueConstraintsResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<UniqueConstraintsResponse>() { 
          public void onComplete(UniqueConstraintsResponse o) {
            get_unique_constraints_result result = new get_unique_constraints_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_unique_constraints_result result = new get_unique_constraints_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o2 = (NoSuchObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_unique_constraints_args args, org.apache.thrift.async.AsyncMethodCallback<UniqueConstraintsResponse> resultHandler) throws org.apache.thrift.TException {
        iface.get_unique_constraints(args.request,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_not_null_constraints<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_not_null_constraints_args, NotNullConstraintsResponse> {
      public get_not_null_constraints() {
        super("get_not_null_constraints");
      }

      public get_not_null_constraints_args getEmptyArgsInstance() {
        return new get_not_null_constraints_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<NotNullConstraintsResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<NotNullConstraintsResponse>() { 
          public void onComplete(NotNullConstraintsResponse o) {
            get_not_null_constraints_result result = new get_not_null_constraints_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_not_null_constraints_result result = new get_not_null_constraints_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o2 = (NoSuchObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_not_null_constraints_args args, org.apache.thrift.async.AsyncMethodCallback<NotNullConstraintsResponse> resultHandler) throws org.apache.thrift.TException {
        iface.get_not_null_constraints(args.request,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_default_constraints<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_default_constraints_args, DefaultConstraintsResponse> {
      public get_default_constraints() {
        super("get_default_constraints");
      }

      public get_default_constraints_args getEmptyArgsInstance() {
        return new get_default_constraints_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<DefaultConstraintsResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<DefaultConstraintsResponse>() { 
          public void onComplete(DefaultConstraintsResponse o) {
            get_default_constraints_result result = new get_default_constraints_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_default_constraints_result result = new get_default_constraints_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o2 = (NoSuchObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_default_constraints_args args, org.apache.thrift.async.AsyncMethodCallback<DefaultConstraintsResponse> resultHandler) throws org.apache.thrift.TException {
        iface.get_default_constraints(args.request,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_check_constraints<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_check_constraints_args, CheckConstraintsResponse> {
      public get_check_constraints() {
        super("get_check_constraints");
      }

      public get_check_constraints_args getEmptyArgsInstance() {
        return new get_check_constraints_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<CheckConstraintsResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<CheckConstraintsResponse>() { 
          public void onComplete(CheckConstraintsResponse o) {
            get_check_constraints_result result = new get_check_constraints_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_check_constraints_result result = new get_check_constraints_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o2 = (NoSuchObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_check_constraints_args args, org.apache.thrift.async.AsyncMethodCallback<CheckConstraintsResponse> resultHandler) throws org.apache.thrift.TException {
        iface.get_check_constraints(args.request,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class update_table_column_statistics<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, update_table_column_statistics_args, java.lang.Boolean> {
      public update_table_column_statistics() {
        super("update_table_column_statistics");
      }

      public update_table_column_statistics_args getEmptyArgsInstance() {
        return new update_table_column_statistics_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
          public void onComplete(java.lang.Boolean o) {
            update_table_column_statistics_result result = new update_table_column_statistics_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            update_table_column_statistics_result result = new update_table_column_statistics_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof InvalidObjectException) {
              result.o2 = (InvalidObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof InvalidInputException) {
              result.o4 = (InvalidInputException) e;
              result.setO4IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, update_table_column_statistics_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
        iface.update_table_column_statistics(args.stats_obj,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class update_partition_column_statistics<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, update_partition_column_statistics_args, java.lang.Boolean> {
      public update_partition_column_statistics() {
        super("update_partition_column_statistics");
      }

      public update_partition_column_statistics_args getEmptyArgsInstance() {
        return new update_partition_column_statistics_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
          public void onComplete(java.lang.Boolean o) {
            update_partition_column_statistics_result result = new update_partition_column_statistics_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            update_partition_column_statistics_result result = new update_partition_column_statistics_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof InvalidObjectException) {
              result.o2 = (InvalidObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof InvalidInputException) {
              result.o4 = (InvalidInputException) e;
              result.setO4IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, update_partition_column_statistics_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
        iface.update_partition_column_statistics(args.stats_obj,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_column_statistics<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_table_column_statistics_args, ColumnStatistics> {
      public get_table_column_statistics() {
        super("get_table_column_statistics");
      }

      public get_table_column_statistics_args getEmptyArgsInstance() {
        return new get_table_column_statistics_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<ColumnStatistics> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<ColumnStatistics>() { 
          public void onComplete(ColumnStatistics o) {
            get_table_column_statistics_result result = new get_table_column_statistics_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_table_column_statistics_result result = new get_table_column_statistics_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof InvalidInputException) {
              result.o3 = (InvalidInputException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof InvalidObjectException) {
              result.o4 = (InvalidObjectException) e;
              result.setO4IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_table_column_statistics_args args, org.apache.thrift.async.AsyncMethodCallback<ColumnStatistics> resultHandler) throws org.apache.thrift.TException {
        iface.get_table_column_statistics(args.db_name, args.tbl_name, args.col_name,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition_column_statistics<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_partition_column_statistics_args, ColumnStatistics> {
      public get_partition_column_statistics() {
        super("get_partition_column_statistics");
      }

      public get_partition_column_statistics_args getEmptyArgsInstance() {
        return new get_partition_column_statistics_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<ColumnStatistics> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<ColumnStatistics>() { 
          public void onComplete(ColumnStatistics o) {
            get_partition_column_statistics_result result = new get_partition_column_statistics_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_partition_column_statistics_result result = new get_partition_column_statistics_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof InvalidInputException) {
              result.o3 = (InvalidInputException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof InvalidObjectException) {
              result.o4 = (InvalidObjectException) e;
              result.setO4IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_partition_column_statistics_args args, org.apache.thrift.async.AsyncMethodCallback<ColumnStatistics> resultHandler) throws org.apache.thrift.TException {
        iface.get_partition_column_statistics(args.db_name, args.tbl_name, args.part_name, args.col_name,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_statistics_req<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_table_statistics_req_args, TableStatsResult> {
      public get_table_statistics_req() {
        super("get_table_statistics_req");
      }

      public get_table_statistics_req_args getEmptyArgsInstance() {
        return new get_table_statistics_req_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<TableStatsResult> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<TableStatsResult>() { 
          public void onComplete(TableStatsResult o) {
            get_table_statistics_req_result result = new get_table_statistics_req_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_table_statistics_req_result result = new get_table_statistics_req_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_table_statistics_req_args args, org.apache.thrift.async.AsyncMethodCallback<TableStatsResult> resultHandler) throws org.apache.thrift.TException {
        iface.get_table_statistics_req(args.request,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_statistics_req<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_partitions_statistics_req_args, PartitionsStatsResult> {
      public get_partitions_statistics_req() {
        super("get_partitions_statistics_req");
      }

      public get_partitions_statistics_req_args getEmptyArgsInstance() {
        return new get_partitions_statistics_req_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<PartitionsStatsResult> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<PartitionsStatsResult>() { 
          public void onComplete(PartitionsStatsResult o) {
            get_partitions_statistics_req_result result = new get_partitions_statistics_req_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_partitions_statistics_req_result result = new get_partitions_statistics_req_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_partitions_statistics_req_args args, org.apache.thrift.async.AsyncMethodCallback<PartitionsStatsResult> resultHandler) throws org.apache.thrift.TException {
        iface.get_partitions_statistics_req(args.request,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_aggr_stats_for<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_aggr_stats_for_args, AggrStats> {
      public get_aggr_stats_for() {
        super("get_aggr_stats_for");
      }

      public get_aggr_stats_for_args getEmptyArgsInstance() {
        return new get_aggr_stats_for_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<AggrStats> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<AggrStats>() { 
          public void onComplete(AggrStats o) {
            get_aggr_stats_for_result result = new get_aggr_stats_for_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_aggr_stats_for_result result = new get_aggr_stats_for_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_aggr_stats_for_args args, org.apache.thrift.async.AsyncMethodCallback<AggrStats> resultHandler) throws org.apache.thrift.TException {
        iface.get_aggr_stats_for(args.request,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class set_aggr_stats_for<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, set_aggr_stats_for_args, java.lang.Boolean> {
      public set_aggr_stats_for() {
        super("set_aggr_stats_for");
      }

      public set_aggr_stats_for_args getEmptyArgsInstance() {
        return new set_aggr_stats_for_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
          public void onComplete(java.lang.Boolean o) {
            set_aggr_stats_for_result result = new set_aggr_stats_for_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            set_aggr_stats_for_result result = new set_aggr_stats_for_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof InvalidObjectException) {
              result.o2 = (InvalidObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof InvalidInputException) {
              result.o4 = (InvalidInputException) e;
              result.setO4IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, set_aggr_stats_for_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
        iface.set_aggr_stats_for(args.request,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class delete_partition_column_statistics<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, delete_partition_column_statistics_args, java.lang.Boolean> {
      public delete_partition_column_statistics() {
        super("delete_partition_column_statistics");
      }

      public delete_partition_column_statistics_args getEmptyArgsInstance() {
        return new delete_partition_column_statistics_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
          public void onComplete(java.lang.Boolean o) {
            delete_partition_column_statistics_result result = new delete_partition_column_statistics_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            delete_partition_column_statistics_result result = new delete_partition_column_statistics_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof InvalidObjectException) {
              result.o3 = (InvalidObjectException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof InvalidInputException) {
              result.o4 = (InvalidInputException) e;
              result.setO4IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, delete_partition_column_statistics_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
        iface.delete_partition_column_statistics(args.db_name, args.tbl_name, args.part_name, args.col_name,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class delete_table_column_statistics<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, delete_table_column_statistics_args, java.lang.Boolean> {
      public delete_table_column_statistics() {
        super("delete_table_column_statistics");
      }

      public delete_table_column_statistics_args getEmptyArgsInstance() {
        return new delete_table_column_statistics_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
          public void onComplete(java.lang.Boolean o) {
            delete_table_column_statistics_result result = new delete_table_column_statistics_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            delete_table_column_statistics_result result = new delete_table_column_statistics_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof InvalidObjectException) {
              result.o3 = (InvalidObjectException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof InvalidInputException) {
              result.o4 = (InvalidInputException) e;
              result.setO4IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, delete_table_column_statistics_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
        iface.delete_table_column_statistics(args.db_name, args.tbl_name, args.col_name,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_function<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, create_function_args, Void> {
      public create_function() {
        super("create_function");
      }

      public create_function_args getEmptyArgsInstance() {
        return new create_function_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            create_function_result result = new create_function_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            create_function_result result = new create_function_result();
            if (e instanceof AlreadyExistsException) {
              result.o1 = (AlreadyExistsException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof InvalidObjectException) {
              result.o2 = (InvalidObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o4 = (NoSuchObjectException) e;
              result.setO4IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, create_function_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.create_function(args.func,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_function<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, drop_function_args, Void> {
      public drop_function() {
        super("drop_function");
      }

      public drop_function_args getEmptyArgsInstance() {
        return new drop_function_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            drop_function_result result = new drop_function_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            drop_function_result result = new drop_function_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, drop_function_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.drop_function(args.dbName, args.funcName,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_function<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, alter_function_args, Void> {
      public alter_function() {
        super("alter_function");
      }

      public alter_function_args getEmptyArgsInstance() {
        return new alter_function_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            alter_function_result result = new alter_function_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            alter_function_result result = new alter_function_result();
            if (e instanceof InvalidOperationException) {
              result.o1 = (InvalidOperationException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, alter_function_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.alter_function(args.dbName, args.funcName, args.newFunc,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_functions<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_functions_args, java.util.List<java.lang.String>> {
      public get_functions() {
        super("get_functions");
      }

      public get_functions_args getEmptyArgsInstance() {
        return new get_functions_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>>() { 
          public void onComplete(java.util.List<java.lang.String> o) {
            get_functions_result result = new get_functions_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_functions_result result = new get_functions_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_functions_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
        iface.get_functions(args.dbName, args.pattern,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_function<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_function_args, Function> {
      public get_function() {
        super("get_function");
      }

      public get_function_args getEmptyArgsInstance() {
        return new get_function_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Function> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Function>() { 
          public void onComplete(Function o) {
            get_function_result result = new get_function_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_function_result result = new get_function_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o2 = (NoSuchObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_function_args args, org.apache.thrift.async.AsyncMethodCallback<Function> resultHandler) throws org.apache.thrift.TException {
        iface.get_function(args.dbName, args.funcName,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_all_functions<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_all_functions_args, GetAllFunctionsResponse> {
      public get_all_functions() {
        super("get_all_functions");
      }

      public get_all_functions_args getEmptyArgsInstance() {
        return new get_all_functions_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<GetAllFunctionsResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<GetAllFunctionsResponse>() { 
          public void onComplete(GetAllFunctionsResponse o) {
            get_all_functions_result result = new get_all_functions_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_all_functions_result result = new get_all_functions_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_all_functions_args args, org.apache.thrift.async.AsyncMethodCallback<GetAllFunctionsResponse> resultHandler) throws org.apache.thrift.TException {
        iface.get_all_functions(resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_role<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, create_role_args, java.lang.Boolean> {
      public create_role() {
        super("create_role");
      }

      public create_role_args getEmptyArgsInstance() {
        return new create_role_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
          public void onComplete(java.lang.Boolean o) {
            create_role_result result = new create_role_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            create_role_result result = new create_role_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, create_role_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
        iface.create_role(args.role,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_role<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, drop_role_args, java.lang.Boolean> {
      public drop_role() {
        super("drop_role");
      }

      public drop_role_args getEmptyArgsInstance() {
        return new drop_role_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
          public void onComplete(java.lang.Boolean o) {
            drop_role_result result = new drop_role_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            drop_role_result result = new drop_role_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, drop_role_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
        iface.drop_role(args.role_name,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_role_names<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_role_names_args, java.util.List<java.lang.String>> {
      public get_role_names() {
        super("get_role_names");
      }

      public get_role_names_args getEmptyArgsInstance() {
        return new get_role_names_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>>() { 
          public void onComplete(java.util.List<java.lang.String> o) {
            get_role_names_result result = new get_role_names_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_role_names_result result = new get_role_names_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_role_names_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
        iface.get_role_names(resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class grant_role<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, grant_role_args, java.lang.Boolean> {
      public grant_role() {
        super("grant_role");
      }

      public grant_role_args getEmptyArgsInstance() {
        return new grant_role_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
          public void onComplete(java.lang.Boolean o) {
            grant_role_result result = new grant_role_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            grant_role_result result = new grant_role_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, grant_role_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
        iface.grant_role(args.role_name, args.principal_name, args.principal_type, args.grantor, args.grantorType, args.grant_option,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class revoke_role<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, revoke_role_args, java.lang.Boolean> {
      public revoke_role() {
        super("revoke_role");
      }

      public revoke_role_args getEmptyArgsInstance() {
        return new revoke_role_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
          public void onComplete(java.lang.Boolean o) {
            revoke_role_result result = new revoke_role_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            revoke_role_result result = new revoke_role_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, revoke_role_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
        iface.revoke_role(args.role_name, args.principal_name, args.principal_type,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class list_roles<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, list_roles_args, java.util.List<Role>> {
      public list_roles() {
        super("list_roles");
      }

      public list_roles_args getEmptyArgsInstance() {
        return new list_roles_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<Role>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<Role>>() { 
          public void onComplete(java.util.List<Role> o) {
            list_roles_result result = new list_roles_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            list_roles_result result = new list_roles_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, list_roles_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Role>> resultHandler) throws org.apache.thrift.TException {
        iface.list_roles(args.principal_name, args.principal_type,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class grant_revoke_role<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, grant_revoke_role_args, GrantRevokeRoleResponse> {
      public grant_revoke_role() {
        super("grant_revoke_role");
      }

      public grant_revoke_role_args getEmptyArgsInstance() {
        return new grant_revoke_role_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<GrantRevokeRoleResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<GrantRevokeRoleResponse>() { 
          public void onComplete(GrantRevokeRoleResponse o) {
            grant_revoke_role_result result = new grant_revoke_role_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            grant_revoke_role_result result = new grant_revoke_role_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, grant_revoke_role_args args, org.apache.thrift.async.AsyncMethodCallback<GrantRevokeRoleResponse> resultHandler) throws org.apache.thrift.TException {
        iface.grant_revoke_role(args.request,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_principals_in_role<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_principals_in_role_args, GetPrincipalsInRoleResponse> {
      public get_principals_in_role() {
        super("get_principals_in_role");
      }

      public get_principals_in_role_args getEmptyArgsInstance() {
        return new get_principals_in_role_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<GetPrincipalsInRoleResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<GetPrincipalsInRoleResponse>() { 
          public void onComplete(GetPrincipalsInRoleResponse o) {
            get_principals_in_role_result result = new get_principals_in_role_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_principals_in_role_result result = new get_principals_in_role_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_principals_in_role_args args, org.apache.thrift.async.AsyncMethodCallback<GetPrincipalsInRoleResponse> resultHandler) throws org.apache.thrift.TException {
        iface.get_principals_in_role(args.request,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_role_grants_for_principal<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_role_grants_for_principal_args, GetRoleGrantsForPrincipalResponse> {
      public get_role_grants_for_principal() {
        super("get_role_grants_for_principal");
      }

      public get_role_grants_for_principal_args getEmptyArgsInstance() {
        return new get_role_grants_for_principal_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<GetRoleGrantsForPrincipalResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<GetRoleGrantsForPrincipalResponse>() { 
          public void onComplete(GetRoleGrantsForPrincipalResponse o) {
            get_role_grants_for_principal_result result = new get_role_grants_for_principal_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_role_grants_for_principal_result result = new get_role_grants_for_principal_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_role_grants_for_principal_args args, org.apache.thrift.async.AsyncMethodCallback<GetRoleGrantsForPrincipalResponse> resultHandler) throws org.apache.thrift.TException {
        iface.get_role_grants_for_principal(args.request,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_privilege_set<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_privilege_set_args, PrincipalPrivilegeSet> {
      public get_privilege_set() {
        super("get_privilege_set");
      }

      public get_privilege_set_args getEmptyArgsInstance() {
        return new get_privilege_set_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<PrincipalPrivilegeSet> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<PrincipalPrivilegeSet>() { 
          public void onComplete(PrincipalPrivilegeSet o) {
            get_privilege_set_result result = new get_privilege_set_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_privilege_set_result result = new get_privilege_set_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_privilege_set_args args, org.apache.thrift.async.AsyncMethodCallback<PrincipalPrivilegeSet> resultHandler) throws org.apache.thrift.TException {
        iface.get_privilege_set(args.hiveObject, args.user_name, args.group_names,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class list_privileges<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, list_privileges_args, java.util.List<HiveObjectPrivilege>> {
      public list_privileges() {
        super("list_privileges");
      }

      public list_privileges_args getEmptyArgsInstance() {
        return new list_privileges_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<HiveObjectPrivilege>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<HiveObjectPrivilege>>() { 
          public void onComplete(java.util.List<HiveObjectPrivilege> o) {
            list_privileges_result result = new list_privileges_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            list_privileges_result result = new list_privileges_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, list_privileges_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<HiveObjectPrivilege>> resultHandler) throws org.apache.thrift.TException {
        iface.list_privileges(args.principal_name, args.principal_type, args.hiveObject,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class grant_privileges<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, grant_privileges_args, java.lang.Boolean> {
      public grant_privileges() {
        super("grant_privileges");
      }

      public grant_privileges_args getEmptyArgsInstance() {
        return new grant_privileges_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
          public void onComplete(java.lang.Boolean o) {
            grant_privileges_result result = new grant_privileges_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            grant_privileges_result result = new grant_privileges_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, grant_privileges_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
        iface.grant_privileges(args.privileges,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class revoke_privileges<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, revoke_privileges_args, java.lang.Boolean> {
      public revoke_privileges() {
        super("revoke_privileges");
      }

      public revoke_privileges_args getEmptyArgsInstance() {
        return new revoke_privileges_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
          public void onComplete(java.lang.Boolean o) {
            revoke_privileges_result result = new revoke_privileges_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            revoke_privileges_result result = new revoke_privileges_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, revoke_privileges_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
        iface.revoke_privileges(args.privileges,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class grant_revoke_privileges<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, grant_revoke_privileges_args, GrantRevokePrivilegeResponse> {
      public grant_revoke_privileges() {
        super("grant_revoke_privileges");
      }

      public grant_revoke_privileges_args getEmptyArgsInstance() {
        return new grant_revoke_privileges_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<GrantRevokePrivilegeResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<GrantRevokePrivilegeResponse>() { 
          public void onComplete(GrantRevokePrivilegeResponse o) {
            grant_revoke_privileges_result result = new grant_revoke_privileges_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            grant_revoke_privileges_result result = new grant_revoke_privileges_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, grant_revoke_privileges_args args, org.apache.thrift.async.AsyncMethodCallback<GrantRevokePrivilegeResponse> resultHandler) throws org.apache.thrift.TException {
        iface.grant_revoke_privileges(args.request,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class refresh_privileges<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, refresh_privileges_args, GrantRevokePrivilegeResponse> {
      public refresh_privileges() {
        super("refresh_privileges");
      }

      public refresh_privileges_args getEmptyArgsInstance() {
        return new refresh_privileges_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<GrantRevokePrivilegeResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<GrantRevokePrivilegeResponse>() { 
          public void onComplete(GrantRevokePrivilegeResponse o) {
            refresh_privileges_result result = new refresh_privileges_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            refresh_privileges_result result = new refresh_privileges_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, refresh_privileges_args args, org.apache.thrift.async.AsyncMethodCallback<GrantRevokePrivilegeResponse> resultHandler) throws org.apache.thrift.TException {
        iface.refresh_privileges(args.objToRefresh, args.authorizer, args.grantRequest,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class set_ugi<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, set_ugi_args, java.util.List<java.lang.String>> {
      public set_ugi() {
        super("set_ugi");
      }

      public set_ugi_args getEmptyArgsInstance() {
        return new set_ugi_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>>() { 
          public void onComplete(java.util.List<java.lang.String> o) {
            set_ugi_result result = new set_ugi_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            set_ugi_result result = new set_ugi_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, set_ugi_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
        iface.set_ugi(args.user_name, args.group_names,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_delegation_token<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_delegation_token_args, java.lang.String> {
      public get_delegation_token() {
        super("get_delegation_token");
      }

      public get_delegation_token_args getEmptyArgsInstance() {
        return new get_delegation_token_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.lang.String> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
          public void onComplete(java.lang.String o) {
            get_delegation_token_result result = new get_delegation_token_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_delegation_token_result result = new get_delegation_token_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_delegation_token_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
        iface.get_delegation_token(args.token_owner, args.renewer_kerberos_principal_name,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class renew_delegation_token<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, renew_delegation_token_args, java.lang.Long> {
      public renew_delegation_token() {
        super("renew_delegation_token");
      }

      public renew_delegation_token_args getEmptyArgsInstance() {
        return new renew_delegation_token_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Long> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Long>() { 
          public void onComplete(java.lang.Long o) {
            renew_delegation_token_result result = new renew_delegation_token_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            renew_delegation_token_result result = new renew_delegation_token_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, renew_delegation_token_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Long> resultHandler) throws org.apache.thrift.TException {
        iface.renew_delegation_token(args.token_str_form,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class cancel_delegation_token<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, cancel_delegation_token_args, Void> {
      public cancel_delegation_token() {
        super("cancel_delegation_token");
      }

      public cancel_delegation_token_args getEmptyArgsInstance() {
        return new cancel_delegation_token_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            cancel_delegation_token_result result = new cancel_delegation_token_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            cancel_delegation_token_result result = new cancel_delegation_token_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, cancel_delegation_token_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.cancel_delegation_token(args.token_str_form,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_token<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, add_token_args, java.lang.Boolean> {
      public add_token() {
        super("add_token");
      }

      public add_token_args getEmptyArgsInstance() {
        return new add_token_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
          public void onComplete(java.lang.Boolean o) {
            add_token_result result = new add_token_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            add_token_result result = new add_token_result();
            if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, add_token_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
        iface.add_token(args.token_identifier, args.delegation_token,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class remove_token<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, remove_token_args, java.lang.Boolean> {
      public remove_token() {
        super("remove_token");
      }

      public remove_token_args getEmptyArgsInstance() {
        return new remove_token_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
          public void onComplete(java.lang.Boolean o) {
            remove_token_result result = new remove_token_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            remove_token_result result = new remove_token_result();
            if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, remove_token_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
        iface.remove_token(args.token_identifier,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_token<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_token_args, java.lang.String> {
      public get_token() {
        super("get_token");
      }

      public get_token_args getEmptyArgsInstance() {
        return new get_token_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.lang.String> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
          public void onComplete(java.lang.String o) {
            get_token_result result = new get_token_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_token_result result = new get_token_result();
            if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_token_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
        iface.get_token(args.token_identifier,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_all_token_identifiers<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_all_token_identifiers_args, java.util.List<java.lang.String>> {
      public get_all_token_identifiers() {
        super("get_all_token_identifiers");
      }

      public get_all_token_identifiers_args getEmptyArgsInstance() {
        return new get_all_token_identifiers_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>>() { 
          public void onComplete(java.util.List<java.lang.String> o) {
            get_all_token_identifiers_result result = new get_all_token_identifiers_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_all_token_identifiers_result result = new get_all_token_identifiers_result();
            if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_all_token_identifiers_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
        iface.get_all_token_identifiers(resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_master_key<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, add_master_key_args, java.lang.Integer> {
      public add_master_key() {
        super("add_master_key");
      }

      public add_master_key_args getEmptyArgsInstance() {
        return new add_master_key_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Integer> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Integer>() { 
          public void onComplete(java.lang.Integer o) {
            add_master_key_result result = new add_master_key_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            add_master_key_result result = new add_master_key_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, add_master_key_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Integer> resultHandler) throws org.apache.thrift.TException {
        iface.add_master_key(args.key,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class update_master_key<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, update_master_key_args, Void> {
      public update_master_key() {
        super("update_master_key");
      }

      public update_master_key_args getEmptyArgsInstance() {
        return new update_master_key_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            update_master_key_result result = new update_master_key_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            update_master_key_result result = new update_master_key_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, update_master_key_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.update_master_key(args.seq_number, args.key,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class remove_master_key<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, remove_master_key_args, java.lang.Boolean> {
      public remove_master_key() {
        super("remove_master_key");
      }

      public remove_master_key_args getEmptyArgsInstance() {
        return new remove_master_key_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
          public void onComplete(java.lang.Boolean o) {
            remove_master_key_result result = new remove_master_key_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            remove_master_key_result result = new remove_master_key_result();
            if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, remove_master_key_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
        iface.remove_master_key(args.key_seq,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_master_keys<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_master_keys_args, java.util.List<java.lang.String>> {
      public get_master_keys() {
        super("get_master_keys");
      }

      public get_master_keys_args getEmptyArgsInstance() {
        return new get_master_keys_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>>() { 
          public void onComplete(java.util.List<java.lang.String> o) {
            get_master_keys_result result = new get_master_keys_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_master_keys_result result = new get_master_keys_result();
            if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_master_keys_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
        iface.get_master_keys(resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_open_txns<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_open_txns_args, GetOpenTxnsResponse> {
      public get_open_txns() {
        super("get_open_txns");
      }

      public get_open_txns_args getEmptyArgsInstance() {
        return new get_open_txns_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<GetOpenTxnsResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<GetOpenTxnsResponse>() { 
          public void onComplete(GetOpenTxnsResponse o) {
            get_open_txns_result result = new get_open_txns_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_open_txns_result result = new get_open_txns_result();
            if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_open_txns_args args, org.apache.thrift.async.AsyncMethodCallback<GetOpenTxnsResponse> resultHandler) throws org.apache.thrift.TException {
        iface.get_open_txns(resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_open_txns_info<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_open_txns_info_args, GetOpenTxnsInfoResponse> {
      public get_open_txns_info() {
        super("get_open_txns_info");
      }

      public get_open_txns_info_args getEmptyArgsInstance() {
        return new get_open_txns_info_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<GetOpenTxnsInfoResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<GetOpenTxnsInfoResponse>() { 
          public void onComplete(GetOpenTxnsInfoResponse o) {
            get_open_txns_info_result result = new get_open_txns_info_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_open_txns_info_result result = new get_open_txns_info_result();
            if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_open_txns_info_args args, org.apache.thrift.async.AsyncMethodCallback<GetOpenTxnsInfoResponse> resultHandler) throws org.apache.thrift.TException {
        iface.get_open_txns_info(resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class open_txns<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, open_txns_args, OpenTxnsResponse> {
      public open_txns() {
        super("open_txns");
      }

      public open_txns_args getEmptyArgsInstance() {
        return new open_txns_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<OpenTxnsResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<OpenTxnsResponse>() { 
          public void onComplete(OpenTxnsResponse o) {
            open_txns_result result = new open_txns_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            open_txns_result result = new open_txns_result();
            if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, open_txns_args args, org.apache.thrift.async.AsyncMethodCallback<OpenTxnsResponse> resultHandler) throws org.apache.thrift.TException {
        iface.open_txns(args.rqst,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class abort_txn<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, abort_txn_args, Void> {
      public abort_txn() {
        super("abort_txn");
      }

      public abort_txn_args getEmptyArgsInstance() {
        return new abort_txn_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            abort_txn_result result = new abort_txn_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            abort_txn_result result = new abort_txn_result();
            if (e instanceof NoSuchTxnException) {
              result.o1 = (NoSuchTxnException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, abort_txn_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.abort_txn(args.rqst,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class abort_txns<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, abort_txns_args, Void> {
      public abort_txns() {
        super("abort_txns");
      }

      public abort_txns_args getEmptyArgsInstance() {
        return new abort_txns_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            abort_txns_result result = new abort_txns_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            abort_txns_result result = new abort_txns_result();
            if (e instanceof NoSuchTxnException) {
              result.o1 = (NoSuchTxnException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, abort_txns_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.abort_txns(args.rqst,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class commit_txn<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, commit_txn_args, Void> {
      public commit_txn() {
        super("commit_txn");
      }

      public commit_txn_args getEmptyArgsInstance() {
        return new commit_txn_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            commit_txn_result result = new commit_txn_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            commit_txn_result result = new commit_txn_result();
            if (e instanceof NoSuchTxnException) {
              result.o1 = (NoSuchTxnException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof TxnAbortedException) {
              result.o2 = (TxnAbortedException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, commit_txn_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.commit_txn(args.rqst,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class repl_tbl_writeid_state<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, repl_tbl_writeid_state_args, Void> {
      public repl_tbl_writeid_state() {
        super("repl_tbl_writeid_state");
      }

      public repl_tbl_writeid_state_args getEmptyArgsInstance() {
        return new repl_tbl_writeid_state_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            repl_tbl_writeid_state_result result = new repl_tbl_writeid_state_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            repl_tbl_writeid_state_result result = new repl_tbl_writeid_state_result();
            if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, repl_tbl_writeid_state_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.repl_tbl_writeid_state(args.rqst,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_valid_write_ids<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_valid_write_ids_args, GetValidWriteIdsResponse> {
      public get_valid_write_ids() {
        super("get_valid_write_ids");
      }

      public get_valid_write_ids_args getEmptyArgsInstance() {
        return new get_valid_write_ids_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<GetValidWriteIdsResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<GetValidWriteIdsResponse>() { 
          public void onComplete(GetValidWriteIdsResponse o) {
            get_valid_write_ids_result result = new get_valid_write_ids_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_valid_write_ids_result result = new get_valid_write_ids_result();
            if (e instanceof NoSuchTxnException) {
              result.o1 = (NoSuchTxnException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_valid_write_ids_args args, org.apache.thrift.async.AsyncMethodCallback<GetValidWriteIdsResponse> resultHandler) throws org.apache.thrift.TException {
        iface.get_valid_write_ids(args.rqst,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class allocate_table_write_ids<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, allocate_table_write_ids_args, AllocateTableWriteIdsResponse> {
      public allocate_table_write_ids() {
        super("allocate_table_write_ids");
      }

      public allocate_table_write_ids_args getEmptyArgsInstance() {
        return new allocate_table_write_ids_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<AllocateTableWriteIdsResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<AllocateTableWriteIdsResponse>() { 
          public void onComplete(AllocateTableWriteIdsResponse o) {
            allocate_table_write_ids_result result = new allocate_table_write_ids_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            allocate_table_write_ids_result result = new allocate_table_write_ids_result();
            if (e instanceof NoSuchTxnException) {
              result.o1 = (NoSuchTxnException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof TxnAbortedException) {
              result.o2 = (TxnAbortedException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, allocate_table_write_ids_args args, org.apache.thrift.async.AsyncMethodCallback<AllocateTableWriteIdsResponse> resultHandler) throws org.apache.thrift.TException {
        iface.allocate_table_write_ids(args.rqst,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class lock<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, lock_args, LockResponse> {
      public lock() {
        super("lock");
      }

      public lock_args getEmptyArgsInstance() {
        return new lock_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<LockResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<LockResponse>() { 
          public void onComplete(LockResponse o) {
            lock_result result = new lock_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            lock_result result = new lock_result();
            if (e instanceof NoSuchTxnException) {
              result.o1 = (NoSuchTxnException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof TxnAbortedException) {
              result.o2 = (TxnAbortedException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, lock_args args, org.apache.thrift.async.AsyncMethodCallback<LockResponse> resultHandler) throws org.apache.thrift.TException {
        iface.lock(args.rqst,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class check_lock<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, check_lock_args, LockResponse> {
      public check_lock() {
        super("check_lock");
      }

      public check_lock_args getEmptyArgsInstance() {
        return new check_lock_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<LockResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<LockResponse>() { 
          public void onComplete(LockResponse o) {
            check_lock_result result = new check_lock_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            check_lock_result result = new check_lock_result();
            if (e instanceof NoSuchTxnException) {
              result.o1 = (NoSuchTxnException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof TxnAbortedException) {
              result.o2 = (TxnAbortedException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchLockException) {
              result.o3 = (NoSuchLockException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, check_lock_args args, org.apache.thrift.async.AsyncMethodCallback<LockResponse> resultHandler) throws org.apache.thrift.TException {
        iface.check_lock(args.rqst,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class unlock<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, unlock_args, Void> {
      public unlock() {
        super("unlock");
      }

      public unlock_args getEmptyArgsInstance() {
        return new unlock_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            unlock_result result = new unlock_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            unlock_result result = new unlock_result();
            if (e instanceof NoSuchLockException) {
              result.o1 = (NoSuchLockException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof TxnOpenException) {
              result.o2 = (TxnOpenException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, unlock_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.unlock(args.rqst,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class show_locks<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, show_locks_args, ShowLocksResponse> {
      public show_locks() {
        super("show_locks");
      }

      public show_locks_args getEmptyArgsInstance() {
        return new show_locks_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<ShowLocksResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<ShowLocksResponse>() { 
          public void onComplete(ShowLocksResponse o) {
            show_locks_result result = new show_locks_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            show_locks_result result = new show_locks_result();
            if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, show_locks_args args, org.apache.thrift.async.AsyncMethodCallback<ShowLocksResponse> resultHandler) throws org.apache.thrift.TException {
        iface.show_locks(args.rqst,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class heartbeat<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, heartbeat_args, Void> {
      public heartbeat() {
        super("heartbeat");
      }

      public heartbeat_args getEmptyArgsInstance() {
        return new heartbeat_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            heartbeat_result result = new heartbeat_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            heartbeat_result result = new heartbeat_result();
            if (e instanceof NoSuchLockException) {
              result.o1 = (NoSuchLockException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchTxnException) {
              result.o2 = (NoSuchTxnException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof TxnAbortedException) {
              result.o3 = (TxnAbortedException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, heartbeat_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.heartbeat(args.ids,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class heartbeat_txn_range<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, heartbeat_txn_range_args, HeartbeatTxnRangeResponse> {
      public heartbeat_txn_range() {
        super("heartbeat_txn_range");
      }

      public heartbeat_txn_range_args getEmptyArgsInstance() {
        return new heartbeat_txn_range_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<HeartbeatTxnRangeResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<HeartbeatTxnRangeResponse>() { 
          public void onComplete(HeartbeatTxnRangeResponse o) {
            heartbeat_txn_range_result result = new heartbeat_txn_range_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            heartbeat_txn_range_result result = new heartbeat_txn_range_result();
            if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, heartbeat_txn_range_args args, org.apache.thrift.async.AsyncMethodCallback<HeartbeatTxnRangeResponse> resultHandler) throws org.apache.thrift.TException {
        iface.heartbeat_txn_range(args.txns,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class compact<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, compact_args, Void> {
      public compact() {
        super("compact");
      }

      public compact_args getEmptyArgsInstance() {
        return new compact_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            compact_result result = new compact_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            compact_result result = new compact_result();
            if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, compact_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.compact(args.rqst,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class compact2<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, compact2_args, CompactionResponse> {
      public compact2() {
        super("compact2");
      }

      public compact2_args getEmptyArgsInstance() {
        return new compact2_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<CompactionResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<CompactionResponse>() { 
          public void onComplete(CompactionResponse o) {
            compact2_result result = new compact2_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            compact2_result result = new compact2_result();
            if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, compact2_args args, org.apache.thrift.async.AsyncMethodCallback<CompactionResponse> resultHandler) throws org.apache.thrift.TException {
        iface.compact2(args.rqst,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class show_compact<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, show_compact_args, ShowCompactResponse> {
      public show_compact() {
        super("show_compact");
      }

      public show_compact_args getEmptyArgsInstance() {
        return new show_compact_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<ShowCompactResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<ShowCompactResponse>() { 
          public void onComplete(ShowCompactResponse o) {
            show_compact_result result = new show_compact_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            show_compact_result result = new show_compact_result();
            if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, show_compact_args args, org.apache.thrift.async.AsyncMethodCallback<ShowCompactResponse> resultHandler) throws org.apache.thrift.TException {
        iface.show_compact(args.rqst,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_dynamic_partitions<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, add_dynamic_partitions_args, Void> {
      public add_dynamic_partitions() {
        super("add_dynamic_partitions");
      }

      public add_dynamic_partitions_args getEmptyArgsInstance() {
        return new add_dynamic_partitions_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            add_dynamic_partitions_result result = new add_dynamic_partitions_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            add_dynamic_partitions_result result = new add_dynamic_partitions_result();
            if (e instanceof NoSuchTxnException) {
              result.o1 = (NoSuchTxnException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof TxnAbortedException) {
              result.o2 = (TxnAbortedException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, add_dynamic_partitions_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.add_dynamic_partitions(args.rqst,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_next_notification<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_next_notification_args, NotificationEventResponse> {
      public get_next_notification() {
        super("get_next_notification");
      }

      public get_next_notification_args getEmptyArgsInstance() {
        return new get_next_notification_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<NotificationEventResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<NotificationEventResponse>() { 
          public void onComplete(NotificationEventResponse o) {
            get_next_notification_result result = new get_next_notification_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_next_notification_result result = new get_next_notification_result();
            if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_next_notification_args args, org.apache.thrift.async.AsyncMethodCallback<NotificationEventResponse> resultHandler) throws org.apache.thrift.TException {
        iface.get_next_notification(args.rqst,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_current_notificationEventId<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_current_notificationEventId_args, CurrentNotificationEventId> {
      public get_current_notificationEventId() {
        super("get_current_notificationEventId");
      }

      public get_current_notificationEventId_args getEmptyArgsInstance() {
        return new get_current_notificationEventId_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<CurrentNotificationEventId> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<CurrentNotificationEventId>() { 
          public void onComplete(CurrentNotificationEventId o) {
            get_current_notificationEventId_result result = new get_current_notificationEventId_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_current_notificationEventId_result result = new get_current_notificationEventId_result();
            if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_current_notificationEventId_args args, org.apache.thrift.async.AsyncMethodCallback<CurrentNotificationEventId> resultHandler) throws org.apache.thrift.TException {
        iface.get_current_notificationEventId(resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_notification_events_count<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_notification_events_count_args, NotificationEventsCountResponse> {
      public get_notification_events_count() {
        super("get_notification_events_count");
      }

      public get_notification_events_count_args getEmptyArgsInstance() {
        return new get_notification_events_count_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<NotificationEventsCountResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<NotificationEventsCountResponse>() { 
          public void onComplete(NotificationEventsCountResponse o) {
            get_notification_events_count_result result = new get_notification_events_count_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_notification_events_count_result result = new get_notification_events_count_result();
            if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_notification_events_count_args args, org.apache.thrift.async.AsyncMethodCallback<NotificationEventsCountResponse> resultHandler) throws org.apache.thrift.TException {
        iface.get_notification_events_count(args.rqst,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class fire_listener_event<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, fire_listener_event_args, FireEventResponse> {
      public fire_listener_event() {
        super("fire_listener_event");
      }

      public fire_listener_event_args getEmptyArgsInstance() {
        return new fire_listener_event_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<FireEventResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<FireEventResponse>() { 
          public void onComplete(FireEventResponse o) {
            fire_listener_event_result result = new fire_listener_event_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            fire_listener_event_result result = new fire_listener_event_result();
            if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, fire_listener_event_args args, org.apache.thrift.async.AsyncMethodCallback<FireEventResponse> resultHandler) throws org.apache.thrift.TException {
        iface.fire_listener_event(args.rqst,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class flushCache<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, flushCache_args, Void> {
      public flushCache() {
        super("flushCache");
      }

      public flushCache_args getEmptyArgsInstance() {
        return new flushCache_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            flushCache_result result = new flushCache_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            flushCache_result result = new flushCache_result();
            if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, flushCache_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.flushCache(resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class cm_recycle<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, cm_recycle_args, CmRecycleResponse> {
      public cm_recycle() {
        super("cm_recycle");
      }

      public cm_recycle_args getEmptyArgsInstance() {
        return new cm_recycle_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<CmRecycleResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<CmRecycleResponse>() { 
          public void onComplete(CmRecycleResponse o) {
            cm_recycle_result result = new cm_recycle_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            cm_recycle_result result = new cm_recycle_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, cm_recycle_args args, org.apache.thrift.async.AsyncMethodCallback<CmRecycleResponse> resultHandler) throws org.apache.thrift.TException {
        iface.cm_recycle(args.request,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_file_metadata_by_expr<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_file_metadata_by_expr_args, GetFileMetadataByExprResult> {
      public get_file_metadata_by_expr() {
        super("get_file_metadata_by_expr");
      }

      public get_file_metadata_by_expr_args getEmptyArgsInstance() {
        return new get_file_metadata_by_expr_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<GetFileMetadataByExprResult> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<GetFileMetadataByExprResult>() { 
          public void onComplete(GetFileMetadataByExprResult o) {
            get_file_metadata_by_expr_result result = new get_file_metadata_by_expr_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_file_metadata_by_expr_result result = new get_file_metadata_by_expr_result();
            if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_file_metadata_by_expr_args args, org.apache.thrift.async.AsyncMethodCallback<GetFileMetadataByExprResult> resultHandler) throws org.apache.thrift.TException {
        iface.get_file_metadata_by_expr(args.req,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_file_metadata<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_file_metadata_args, GetFileMetadataResult> {
      public get_file_metadata() {
        super("get_file_metadata");
      }

      public get_file_metadata_args getEmptyArgsInstance() {
        return new get_file_metadata_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<GetFileMetadataResult> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<GetFileMetadataResult>() { 
          public void onComplete(GetFileMetadataResult o) {
            get_file_metadata_result result = new get_file_metadata_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_file_metadata_result result = new get_file_metadata_result();
            if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_file_metadata_args args, org.apache.thrift.async.AsyncMethodCallback<GetFileMetadataResult> resultHandler) throws org.apache.thrift.TException {
        iface.get_file_metadata(args.req,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class put_file_metadata<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, put_file_metadata_args, PutFileMetadataResult> {
      public put_file_metadata() {
        super("put_file_metadata");
      }

      public put_file_metadata_args getEmptyArgsInstance() {
        return new put_file_metadata_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<PutFileMetadataResult> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<PutFileMetadataResult>() { 
          public void onComplete(PutFileMetadataResult o) {
            put_file_metadata_result result = new put_file_metadata_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            put_file_metadata_result result = new put_file_metadata_result();
            if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, put_file_metadata_args args, org.apache.thrift.async.AsyncMethodCallback<PutFileMetadataResult> resultHandler) throws org.apache.thrift.TException {
        iface.put_file_metadata(args.req,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class clear_file_metadata<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, clear_file_metadata_args, ClearFileMetadataResult> {
      public clear_file_metadata() {
        super("clear_file_metadata");
      }

      public clear_file_metadata_args getEmptyArgsInstance() {
        return new clear_file_metadata_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<ClearFileMetadataResult> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<ClearFileMetadataResult>() { 
          public void onComplete(ClearFileMetadataResult o) {
            clear_file_metadata_result result = new clear_file_metadata_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            clear_file_metadata_result result = new clear_file_metadata_result();
            if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, clear_file_metadata_args args, org.apache.thrift.async.AsyncMethodCallback<ClearFileMetadataResult> resultHandler) throws org.apache.thrift.TException {
        iface.clear_file_metadata(args.req,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class cache_file_metadata<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, cache_file_metadata_args, CacheFileMetadataResult> {
      public cache_file_metadata() {
        super("cache_file_metadata");
      }

      public cache_file_metadata_args getEmptyArgsInstance() {
        return new cache_file_metadata_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<CacheFileMetadataResult> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<CacheFileMetadataResult>() { 
          public void onComplete(CacheFileMetadataResult o) {
            cache_file_metadata_result result = new cache_file_metadata_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            cache_file_metadata_result result = new cache_file_metadata_result();
            if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, cache_file_metadata_args args, org.apache.thrift.async.AsyncMethodCallback<CacheFileMetadataResult> resultHandler) throws org.apache.thrift.TException {
        iface.cache_file_metadata(args.req,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_metastore_db_uuid<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_metastore_db_uuid_args, java.lang.String> {
      public get_metastore_db_uuid() {
        super("get_metastore_db_uuid");
      }

      public get_metastore_db_uuid_args getEmptyArgsInstance() {
        return new get_metastore_db_uuid_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.lang.String> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
          public void onComplete(java.lang.String o) {
            get_metastore_db_uuid_result result = new get_metastore_db_uuid_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_metastore_db_uuid_result result = new get_metastore_db_uuid_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_metastore_db_uuid_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
        iface.get_metastore_db_uuid(resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_resource_plan<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, create_resource_plan_args, WMCreateResourcePlanResponse> {
      public create_resource_plan() {
        super("create_resource_plan");
      }

      public create_resource_plan_args getEmptyArgsInstance() {
        return new create_resource_plan_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<WMCreateResourcePlanResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<WMCreateResourcePlanResponse>() { 
          public void onComplete(WMCreateResourcePlanResponse o) {
            create_resource_plan_result result = new create_resource_plan_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            create_resource_plan_result result = new create_resource_plan_result();
            if (e instanceof AlreadyExistsException) {
              result.o1 = (AlreadyExistsException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof InvalidObjectException) {
              result.o2 = (InvalidObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, create_resource_plan_args args, org.apache.thrift.async.AsyncMethodCallback<WMCreateResourcePlanResponse> resultHandler) throws org.apache.thrift.TException {
        iface.create_resource_plan(args.request,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_resource_plan<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_resource_plan_args, WMGetResourcePlanResponse> {
      public get_resource_plan() {
        super("get_resource_plan");
      }

      public get_resource_plan_args getEmptyArgsInstance() {
        return new get_resource_plan_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<WMGetResourcePlanResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<WMGetResourcePlanResponse>() { 
          public void onComplete(WMGetResourcePlanResponse o) {
            get_resource_plan_result result = new get_resource_plan_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_resource_plan_result result = new get_resource_plan_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_resource_plan_args args, org.apache.thrift.async.AsyncMethodCallback<WMGetResourcePlanResponse> resultHandler) throws org.apache.thrift.TException {
        iface.get_resource_plan(args.request,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_active_resource_plan<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_active_resource_plan_args, WMGetActiveResourcePlanResponse> {
      public get_active_resource_plan() {
        super("get_active_resource_plan");
      }

      public get_active_resource_plan_args getEmptyArgsInstance() {
        return new get_active_resource_plan_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<WMGetActiveResourcePlanResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<WMGetActiveResourcePlanResponse>() { 
          public void onComplete(WMGetActiveResourcePlanResponse o) {
            get_active_resource_plan_result result = new get_active_resource_plan_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_active_resource_plan_result result = new get_active_resource_plan_result();
            if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_active_resource_plan_args args, org.apache.thrift.async.AsyncMethodCallback<WMGetActiveResourcePlanResponse> resultHandler) throws org.apache.thrift.TException {
        iface.get_active_resource_plan(args.request,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_all_resource_plans<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_all_resource_plans_args, WMGetAllResourcePlanResponse> {
      public get_all_resource_plans() {
        super("get_all_resource_plans");
      }

      public get_all_resource_plans_args getEmptyArgsInstance() {
        return new get_all_resource_plans_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<WMGetAllResourcePlanResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<WMGetAllResourcePlanResponse>() { 
          public void onComplete(WMGetAllResourcePlanResponse o) {
            get_all_resource_plans_result result = new get_all_resource_plans_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_all_resource_plans_result result = new get_all_resource_plans_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_all_resource_plans_args args, org.apache.thrift.async.AsyncMethodCallback<WMGetAllResourcePlanResponse> resultHandler) throws org.apache.thrift.TException {
        iface.get_all_resource_plans(args.request,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_resource_plan<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, alter_resource_plan_args, WMAlterResourcePlanResponse> {
      public alter_resource_plan() {
        super("alter_resource_plan");
      }

      public alter_resource_plan_args getEmptyArgsInstance() {
        return new alter_resource_plan_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<WMAlterResourcePlanResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<WMAlterResourcePlanResponse>() { 
          public void onComplete(WMAlterResourcePlanResponse o) {
            alter_resource_plan_result result = new alter_resource_plan_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            alter_resource_plan_result result = new alter_resource_plan_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof InvalidOperationException) {
              result.o2 = (InvalidOperationException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, alter_resource_plan_args args, org.apache.thrift.async.AsyncMethodCallback<WMAlterResourcePlanResponse> resultHandler) throws org.apache.thrift.TException {
        iface.alter_resource_plan(args.request,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class validate_resource_plan<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, validate_resource_plan_args, WMValidateResourcePlanResponse> {
      public validate_resource_plan() {
        super("validate_resource_plan");
      }

      public validate_resource_plan_args getEmptyArgsInstance() {
        return new validate_resource_plan_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<WMValidateResourcePlanResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<WMValidateResourcePlanResponse>() { 
          public void onComplete(WMValidateResourcePlanResponse o) {
            validate_resource_plan_result result = new validate_resource_plan_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            validate_resource_plan_result result = new validate_resource_plan_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, validate_resource_plan_args args, org.apache.thrift.async.AsyncMethodCallback<WMValidateResourcePlanResponse> resultHandler) throws org.apache.thrift.TException {
        iface.validate_resource_plan(args.request,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_resource_plan<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, drop_resource_plan_args, WMDropResourcePlanResponse> {
      public drop_resource_plan() {
        super("drop_resource_plan");
      }

      public drop_resource_plan_args getEmptyArgsInstance() {
        return new drop_resource_plan_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<WMDropResourcePlanResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<WMDropResourcePlanResponse>() { 
          public void onComplete(WMDropResourcePlanResponse o) {
            drop_resource_plan_result result = new drop_resource_plan_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            drop_resource_plan_result result = new drop_resource_plan_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof InvalidOperationException) {
              result.o2 = (InvalidOperationException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, drop_resource_plan_args args, org.apache.thrift.async.AsyncMethodCallback<WMDropResourcePlanResponse> resultHandler) throws org.apache.thrift.TException {
        iface.drop_resource_plan(args.request,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_wm_trigger<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, create_wm_trigger_args, WMCreateTriggerResponse> {
      public create_wm_trigger() {
        super("create_wm_trigger");
      }

      public create_wm_trigger_args getEmptyArgsInstance() {
        return new create_wm_trigger_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<WMCreateTriggerResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<WMCreateTriggerResponse>() { 
          public void onComplete(WMCreateTriggerResponse o) {
            create_wm_trigger_result result = new create_wm_trigger_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            create_wm_trigger_result result = new create_wm_trigger_result();
            if (e instanceof AlreadyExistsException) {
              result.o1 = (AlreadyExistsException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o2 = (NoSuchObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof InvalidObjectException) {
              result.o3 = (InvalidObjectException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o4 = (MetaException) e;
              result.setO4IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, create_wm_trigger_args args, org.apache.thrift.async.AsyncMethodCallback<WMCreateTriggerResponse> resultHandler) throws org.apache.thrift.TException {
        iface.create_wm_trigger(args.request,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_wm_trigger<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, alter_wm_trigger_args, WMAlterTriggerResponse> {
      public alter_wm_trigger() {
        super("alter_wm_trigger");
      }

      public alter_wm_trigger_args getEmptyArgsInstance() {
        return new alter_wm_trigger_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<WMAlterTriggerResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<WMAlterTriggerResponse>() { 
          public void onComplete(WMAlterTriggerResponse o) {
            alter_wm_trigger_result result = new alter_wm_trigger_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            alter_wm_trigger_result result = new alter_wm_trigger_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof InvalidObjectException) {
              result.o2 = (InvalidObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, alter_wm_trigger_args args, org.apache.thrift.async.AsyncMethodCallback<WMAlterTriggerResponse> resultHandler) throws org.apache.thrift.TException {
        iface.alter_wm_trigger(args.request,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_wm_trigger<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, drop_wm_trigger_args, WMDropTriggerResponse> {
      public drop_wm_trigger() {
        super("drop_wm_trigger");
      }

      public drop_wm_trigger_args getEmptyArgsInstance() {
        return new drop_wm_trigger_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<WMDropTriggerResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<WMDropTriggerResponse>() { 
          public void onComplete(WMDropTriggerResponse o) {
            drop_wm_trigger_result result = new drop_wm_trigger_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            drop_wm_trigger_result result = new drop_wm_trigger_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof InvalidOperationException) {
              result.o2 = (InvalidOperationException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, drop_wm_trigger_args args, org.apache.thrift.async.AsyncMethodCallback<WMDropTriggerResponse> resultHandler) throws org.apache.thrift.TException {
        iface.drop_wm_trigger(args.request,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_triggers_for_resourceplan<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_triggers_for_resourceplan_args, WMGetTriggersForResourePlanResponse> {
      public get_triggers_for_resourceplan() {
        super("get_triggers_for_resourceplan");
      }

      public get_triggers_for_resourceplan_args getEmptyArgsInstance() {
        return new get_triggers_for_resourceplan_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<WMGetTriggersForResourePlanResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<WMGetTriggersForResourePlanResponse>() { 
          public void onComplete(WMGetTriggersForResourePlanResponse o) {
            get_triggers_for_resourceplan_result result = new get_triggers_for_resourceplan_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_triggers_for_resourceplan_result result = new get_triggers_for_resourceplan_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_triggers_for_resourceplan_args args, org.apache.thrift.async.AsyncMethodCallback<WMGetTriggersForResourePlanResponse> resultHandler) throws org.apache.thrift.TException {
        iface.get_triggers_for_resourceplan(args.request,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_wm_pool<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, create_wm_pool_args, WMCreatePoolResponse> {
      public create_wm_pool() {
        super("create_wm_pool");
      }

      public create_wm_pool_args getEmptyArgsInstance() {
        return new create_wm_pool_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<WMCreatePoolResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<WMCreatePoolResponse>() { 
          public void onComplete(WMCreatePoolResponse o) {
            create_wm_pool_result result = new create_wm_pool_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            create_wm_pool_result result = new create_wm_pool_result();
            if (e instanceof AlreadyExistsException) {
              result.o1 = (AlreadyExistsException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o2 = (NoSuchObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof InvalidObjectException) {
              result.o3 = (InvalidObjectException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o4 = (MetaException) e;
              result.setO4IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, create_wm_pool_args args, org.apache.thrift.async.AsyncMethodCallback<WMCreatePoolResponse> resultHandler) throws org.apache.thrift.TException {
        iface.create_wm_pool(args.request,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_wm_pool<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, alter_wm_pool_args, WMAlterPoolResponse> {
      public alter_wm_pool() {
        super("alter_wm_pool");
      }

      public alter_wm_pool_args getEmptyArgsInstance() {
        return new alter_wm_pool_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<WMAlterPoolResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<WMAlterPoolResponse>() { 
          public void onComplete(WMAlterPoolResponse o) {
            alter_wm_pool_result result = new alter_wm_pool_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            alter_wm_pool_result result = new alter_wm_pool_result();
            if (e instanceof AlreadyExistsException) {
              result.o1 = (AlreadyExistsException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o2 = (NoSuchObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof InvalidObjectException) {
              result.o3 = (InvalidObjectException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o4 = (MetaException) e;
              result.setO4IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, alter_wm_pool_args args, org.apache.thrift.async.AsyncMethodCallback<WMAlterPoolResponse> resultHandler) throws org.apache.thrift.TException {
        iface.alter_wm_pool(args.request,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_wm_pool<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, drop_wm_pool_args, WMDropPoolResponse> {
      public drop_wm_pool() {
        super("drop_wm_pool");
      }

      public drop_wm_pool_args getEmptyArgsInstance() {
        return new drop_wm_pool_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<WMDropPoolResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<WMDropPoolResponse>() { 
          public void onComplete(WMDropPoolResponse o) {
            drop_wm_pool_result result = new drop_wm_pool_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            drop_wm_pool_result result = new drop_wm_pool_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof InvalidOperationException) {
              result.o2 = (InvalidOperationException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, drop_wm_pool_args args, org.apache.thrift.async.AsyncMethodCallback<WMDropPoolResponse> resultHandler) throws org.apache.thrift.TException {
        iface.drop_wm_pool(args.request,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_or_update_wm_mapping<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, create_or_update_wm_mapping_args, WMCreateOrUpdateMappingResponse> {
      public create_or_update_wm_mapping() {
        super("create_or_update_wm_mapping");
      }

      public create_or_update_wm_mapping_args getEmptyArgsInstance() {
        return new create_or_update_wm_mapping_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<WMCreateOrUpdateMappingResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<WMCreateOrUpdateMappingResponse>() { 
          public void onComplete(WMCreateOrUpdateMappingResponse o) {
            create_or_update_wm_mapping_result result = new create_or_update_wm_mapping_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            create_or_update_wm_mapping_result result = new create_or_update_wm_mapping_result();
            if (e instanceof AlreadyExistsException) {
              result.o1 = (AlreadyExistsException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o2 = (NoSuchObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof InvalidObjectException) {
              result.o3 = (InvalidObjectException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o4 = (MetaException) e;
              result.setO4IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, create_or_update_wm_mapping_args args, org.apache.thrift.async.AsyncMethodCallback<WMCreateOrUpdateMappingResponse> resultHandler) throws org.apache.thrift.TException {
        iface.create_or_update_wm_mapping(args.request,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_wm_mapping<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, drop_wm_mapping_args, WMDropMappingResponse> {
      public drop_wm_mapping() {
        super("drop_wm_mapping");
      }

      public drop_wm_mapping_args getEmptyArgsInstance() {
        return new drop_wm_mapping_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<WMDropMappingResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<WMDropMappingResponse>() { 
          public void onComplete(WMDropMappingResponse o) {
            drop_wm_mapping_result result = new drop_wm_mapping_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            drop_wm_mapping_result result = new drop_wm_mapping_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof InvalidOperationException) {
              result.o2 = (InvalidOperationException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, drop_wm_mapping_args args, org.apache.thrift.async.AsyncMethodCallback<WMDropMappingResponse> resultHandler) throws org.apache.thrift.TException {
        iface.drop_wm_mapping(args.request,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_or_drop_wm_trigger_to_pool_mapping<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, create_or_drop_wm_trigger_to_pool_mapping_args, WMCreateOrDropTriggerToPoolMappingResponse> {
      public create_or_drop_wm_trigger_to_pool_mapping() {
        super("create_or_drop_wm_trigger_to_pool_mapping");
      }

      public create_or_drop_wm_trigger_to_pool_mapping_args getEmptyArgsInstance() {
        return new create_or_drop_wm_trigger_to_pool_mapping_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<WMCreateOrDropTriggerToPoolMappingResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<WMCreateOrDropTriggerToPoolMappingResponse>() { 
          public void onComplete(WMCreateOrDropTriggerToPoolMappingResponse o) {
            create_or_drop_wm_trigger_to_pool_mapping_result result = new create_or_drop_wm_trigger_to_pool_mapping_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            create_or_drop_wm_trigger_to_pool_mapping_result result = new create_or_drop_wm_trigger_to_pool_mapping_result();
            if (e instanceof AlreadyExistsException) {
              result.o1 = (AlreadyExistsException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o2 = (NoSuchObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof InvalidObjectException) {
              result.o3 = (InvalidObjectException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o4 = (MetaException) e;
              result.setO4IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, create_or_drop_wm_trigger_to_pool_mapping_args args, org.apache.thrift.async.AsyncMethodCallback<WMCreateOrDropTriggerToPoolMappingResponse> resultHandler) throws org.apache.thrift.TException {
        iface.create_or_drop_wm_trigger_to_pool_mapping(args.request,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_ischema<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, create_ischema_args, Void> {
      public create_ischema() {
        super("create_ischema");
      }

      public create_ischema_args getEmptyArgsInstance() {
        return new create_ischema_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            create_ischema_result result = new create_ischema_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            create_ischema_result result = new create_ischema_result();
            if (e instanceof AlreadyExistsException) {
              result.o1 = (AlreadyExistsException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o2 = (NoSuchObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, create_ischema_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.create_ischema(args.schema,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_ischema<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, alter_ischema_args, Void> {
      public alter_ischema() {
        super("alter_ischema");
      }

      public alter_ischema_args getEmptyArgsInstance() {
        return new alter_ischema_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            alter_ischema_result result = new alter_ischema_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            alter_ischema_result result = new alter_ischema_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, alter_ischema_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.alter_ischema(args.rqst,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_ischema<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_ischema_args, ISchema> {
      public get_ischema() {
        super("get_ischema");
      }

      public get_ischema_args getEmptyArgsInstance() {
        return new get_ischema_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<ISchema> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<ISchema>() { 
          public void onComplete(ISchema o) {
            get_ischema_result result = new get_ischema_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_ischema_result result = new get_ischema_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_ischema_args args, org.apache.thrift.async.AsyncMethodCallback<ISchema> resultHandler) throws org.apache.thrift.TException {
        iface.get_ischema(args.name,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_ischema<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, drop_ischema_args, Void> {
      public drop_ischema() {
        super("drop_ischema");
      }

      public drop_ischema_args getEmptyArgsInstance() {
        return new drop_ischema_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            drop_ischema_result result = new drop_ischema_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            drop_ischema_result result = new drop_ischema_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof InvalidOperationException) {
              result.o2 = (InvalidOperationException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, drop_ischema_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.drop_ischema(args.name,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_schema_version<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, add_schema_version_args, Void> {
      public add_schema_version() {
        super("add_schema_version");
      }

      public add_schema_version_args getEmptyArgsInstance() {
        return new add_schema_version_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            add_schema_version_result result = new add_schema_version_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            add_schema_version_result result = new add_schema_version_result();
            if (e instanceof AlreadyExistsException) {
              result.o1 = (AlreadyExistsException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof NoSuchObjectException) {
              result.o2 = (NoSuchObjectException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, add_schema_version_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.add_schema_version(args.schemaVersion,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_schema_version<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_schema_version_args, SchemaVersion> {
      public get_schema_version() {
        super("get_schema_version");
      }

      public get_schema_version_args getEmptyArgsInstance() {
        return new get_schema_version_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<SchemaVersion> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<SchemaVersion>() { 
          public void onComplete(SchemaVersion o) {
            get_schema_version_result result = new get_schema_version_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_schema_version_result result = new get_schema_version_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_schema_version_args args, org.apache.thrift.async.AsyncMethodCallback<SchemaVersion> resultHandler) throws org.apache.thrift.TException {
        iface.get_schema_version(args.schemaVersion,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_schema_latest_version<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_schema_latest_version_args, SchemaVersion> {
      public get_schema_latest_version() {
        super("get_schema_latest_version");
      }

      public get_schema_latest_version_args getEmptyArgsInstance() {
        return new get_schema_latest_version_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<SchemaVersion> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<SchemaVersion>() { 
          public void onComplete(SchemaVersion o) {
            get_schema_latest_version_result result = new get_schema_latest_version_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_schema_latest_version_result result = new get_schema_latest_version_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_schema_latest_version_args args, org.apache.thrift.async.AsyncMethodCallback<SchemaVersion> resultHandler) throws org.apache.thrift.TException {
        iface.get_schema_latest_version(args.schemaName,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_schema_all_versions<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_schema_all_versions_args, java.util.List<SchemaVersion>> {
      public get_schema_all_versions() {
        super("get_schema_all_versions");
      }

      public get_schema_all_versions_args getEmptyArgsInstance() {
        return new get_schema_all_versions_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<SchemaVersion>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<SchemaVersion>>() { 
          public void onComplete(java.util.List<SchemaVersion> o) {
            get_schema_all_versions_result result = new get_schema_all_versions_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_schema_all_versions_result result = new get_schema_all_versions_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_schema_all_versions_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<SchemaVersion>> resultHandler) throws org.apache.thrift.TException {
        iface.get_schema_all_versions(args.schemaName,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_schema_version<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, drop_schema_version_args, Void> {
      public drop_schema_version() {
        super("drop_schema_version");
      }

      public drop_schema_version_args getEmptyArgsInstance() {
        return new drop_schema_version_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            drop_schema_version_result result = new drop_schema_version_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            drop_schema_version_result result = new drop_schema_version_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, drop_schema_version_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.drop_schema_version(args.schemaVersion,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_schemas_by_cols<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_schemas_by_cols_args, FindSchemasByColsResp> {
      public get_schemas_by_cols() {
        super("get_schemas_by_cols");
      }

      public get_schemas_by_cols_args getEmptyArgsInstance() {
        return new get_schemas_by_cols_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<FindSchemasByColsResp> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<FindSchemasByColsResp>() { 
          public void onComplete(FindSchemasByColsResp o) {
            get_schemas_by_cols_result result = new get_schemas_by_cols_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_schemas_by_cols_result result = new get_schemas_by_cols_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_schemas_by_cols_args args, org.apache.thrift.async.AsyncMethodCallback<FindSchemasByColsResp> resultHandler) throws org.apache.thrift.TException {
        iface.get_schemas_by_cols(args.rqst,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class map_schema_version_to_serde<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, map_schema_version_to_serde_args, Void> {
      public map_schema_version_to_serde() {
        super("map_schema_version_to_serde");
      }

      public map_schema_version_to_serde_args getEmptyArgsInstance() {
        return new map_schema_version_to_serde_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            map_schema_version_to_serde_result result = new map_schema_version_to_serde_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            map_schema_version_to_serde_result result = new map_schema_version_to_serde_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, map_schema_version_to_serde_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.map_schema_version_to_serde(args.rqst,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class set_schema_version_state<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, set_schema_version_state_args, Void> {
      public set_schema_version_state() {
        super("set_schema_version_state");
      }

      public set_schema_version_state_args getEmptyArgsInstance() {
        return new set_schema_version_state_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            set_schema_version_state_result result = new set_schema_version_state_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            set_schema_version_state_result result = new set_schema_version_state_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof InvalidOperationException) {
              result.o2 = (InvalidOperationException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o3 = (MetaException) e;
              result.setO3IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, set_schema_version_state_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.set_schema_version_state(args.rqst,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_serde<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, add_serde_args, Void> {
      public add_serde() {
        super("add_serde");
      }

      public add_serde_args getEmptyArgsInstance() {
        return new add_serde_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            add_serde_result result = new add_serde_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            add_serde_result result = new add_serde_result();
            if (e instanceof AlreadyExistsException) {
              result.o1 = (AlreadyExistsException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, add_serde_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.add_serde(args.serde,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_serde<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_serde_args, SerDeInfo> {
      public get_serde() {
        super("get_serde");
      }

      public get_serde_args getEmptyArgsInstance() {
        return new get_serde_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<SerDeInfo> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<SerDeInfo>() { 
          public void onComplete(SerDeInfo o) {
            get_serde_result result = new get_serde_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_serde_result result = new get_serde_result();
            if (e instanceof NoSuchObjectException) {
              result.o1 = (NoSuchObjectException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof MetaException) {
              result.o2 = (MetaException) e;
              result.setO2IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_serde_args args, org.apache.thrift.async.AsyncMethodCallback<SerDeInfo> resultHandler) throws org.apache.thrift.TException {
        iface.get_serde(args.rqst,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_lock_materialization_rebuild<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_lock_materialization_rebuild_args, LockResponse> {
      public get_lock_materialization_rebuild() {
        super("get_lock_materialization_rebuild");
      }

      public get_lock_materialization_rebuild_args getEmptyArgsInstance() {
        return new get_lock_materialization_rebuild_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<LockResponse> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<LockResponse>() { 
          public void onComplete(LockResponse o) {
            get_lock_materialization_rebuild_result result = new get_lock_materialization_rebuild_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_lock_materialization_rebuild_result result = new get_lock_materialization_rebuild_result();
            if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_lock_materialization_rebuild_args args, org.apache.thrift.async.AsyncMethodCallback<LockResponse> resultHandler) throws org.apache.thrift.TException {
        iface.get_lock_materialization_rebuild(args.dbName, args.tableName, args.txnId,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class heartbeat_lock_materialization_rebuild<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, heartbeat_lock_materialization_rebuild_args, java.lang.Boolean> {
      public heartbeat_lock_materialization_rebuild() {
        super("heartbeat_lock_materialization_rebuild");
      }

      public heartbeat_lock_materialization_rebuild_args getEmptyArgsInstance() {
        return new heartbeat_lock_materialization_rebuild_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
          public void onComplete(java.lang.Boolean o) {
            heartbeat_lock_materialization_rebuild_result result = new heartbeat_lock_materialization_rebuild_result();
            result.success = o;
            result.setSuccessIsSet(true);
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            heartbeat_lock_materialization_rebuild_result result = new heartbeat_lock_materialization_rebuild_result();
            if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, heartbeat_lock_materialization_rebuild_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
        iface.heartbeat_lock_materialization_rebuild(args.dbName, args.tableName, args.txnId,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_runtime_stats<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, add_runtime_stats_args, Void> {
      public add_runtime_stats() {
        super("add_runtime_stats");
      }

      public add_runtime_stats_args getEmptyArgsInstance() {
        return new add_runtime_stats_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
          public void onComplete(Void o) {
            add_runtime_stats_result result = new add_runtime_stats_result();
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            add_runtime_stats_result result = new add_runtime_stats_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, add_runtime_stats_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
        iface.add_runtime_stats(args.stat,resultHandler);
      }
    }

    @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_runtime_stats<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_runtime_stats_args, java.util.List<RuntimeStat>> {
      public get_runtime_stats() {
        super("get_runtime_stats");
      }

      public get_runtime_stats_args getEmptyArgsInstance() {
        return new get_runtime_stats_args();
      }

      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<RuntimeStat>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
        final org.apache.thrift.AsyncProcessFunction fcall = this;
        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<RuntimeStat>>() { 
          public void onComplete(java.util.List<RuntimeStat> o) {
            get_runtime_stats_result result = new get_runtime_stats_result();
            result.success = o;
            try {
              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
            } catch (org.apache.thrift.transport.TTransportException e) {
              _LOGGER.error("TTransportException writing to internal frame buffer", e);
              fb.close();
            } catch (java.lang.Exception e) {
              _LOGGER.error("Exception writing to internal frame buffer", e);
              onError(e);
            }
          }
          public void onError(java.lang.Exception e) {
            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
            org.apache.thrift.TSerializable msg;
            get_runtime_stats_result result = new get_runtime_stats_result();
            if (e instanceof MetaException) {
              result.o1 = (MetaException) e;
              result.setO1IsSet(true);
              msg = result;
            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
              _LOGGER.error("TTransportException inside handler", e);
              fb.close();
              return;
            } else if (e instanceof org.apache.thrift.TApplicationException) {
              _LOGGER.error("TApplicationException inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = (org.apache.thrift.TApplicationException)e;
            } else {
              _LOGGER.error("Exception inside handler", e);
              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
            }
            try {
              fcall.sendResponse(fb,msg,msgType,seqid);
            } catch (java.lang.Exception ex) {
              _LOGGER.error("Exception writing to internal frame buffer", ex);
              fb.close();
            }
          }
        };
      }

      protected boolean isOneway() {
        return false;
      }

      public void start(I iface, get_runtime_stats_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<RuntimeStat>> resultHandler) throws org.apache.thrift.TException {
        iface.get_runtime_stats(args.rqst,resultHandler);
      }
    }

  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class getMetaConf_args implements org.apache.thrift.TBase<getMetaConf_args, getMetaConf_args._Fields>, java.io.Serializable, Cloneable, Comparable<getMetaConf_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getMetaConf_args");

    private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField("key", org.apache.thrift.protocol.TType.STRING, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getMetaConf_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getMetaConf_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String key; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      KEY((short)1, "key");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // KEY
            return KEY;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.KEY, new org.apache.thrift.meta_data.FieldMetaData("key", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getMetaConf_args.class, metaDataMap);
    }

    public getMetaConf_args() {
    }

    public getMetaConf_args(
      java.lang.String key)
    {
      this();
      this.key = key;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getMetaConf_args(getMetaConf_args other) {
      if (other.isSetKey()) {
        this.key = other.key;
      }
    }

    public getMetaConf_args deepCopy() {
      return new getMetaConf_args(this);
    }

    @Override
    public void clear() {
      this.key = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getKey() {
      return this.key;
    }

    public void setKey(@org.apache.thrift.annotation.Nullable java.lang.String key) {
      this.key = key;
    }

    public void unsetKey() {
      this.key = null;
    }

    /** Returns true if field key is set (has been assigned a value) and false otherwise */
    public boolean isSetKey() {
      return this.key != null;
    }

    public void setKeyIsSet(boolean value) {
      if (!value) {
        this.key = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case KEY:
        if (value == null) {
          unsetKey();
        } else {
          setKey((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case KEY:
        return getKey();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case KEY:
        return isSetKey();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof getMetaConf_args)
        return this.equals((getMetaConf_args)that);
      return false;
    }

    public boolean equals(getMetaConf_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_key = true && this.isSetKey();
      boolean that_present_key = true && that.isSetKey();
      if (this_present_key || that_present_key) {
        if (!(this_present_key && that_present_key))
          return false;
        if (!this.key.equals(that.key))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
      if (isSetKey())
        hashCode = hashCode * 8191 + key.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(getMetaConf_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetKey(), other.isSetKey());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetKey()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.key, other.key);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("getMetaConf_args(");
      boolean first = true;

      sb.append("key:");
      if (this.key == null) {
        sb.append("null");
      } else {
        sb.append(this.key);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class getMetaConf_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public getMetaConf_argsStandardScheme getScheme() {
        return new getMetaConf_argsStandardScheme();
      }
    }

    private static class getMetaConf_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getMetaConf_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getMetaConf_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // KEY
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.key = iprot.readString();
                struct.setKeyIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getMetaConf_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.key != null) {
          oprot.writeFieldBegin(KEY_FIELD_DESC);
          oprot.writeString(struct.key);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getMetaConf_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public getMetaConf_argsTupleScheme getScheme() {
        return new getMetaConf_argsTupleScheme();
      }
    }

    private static class getMetaConf_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getMetaConf_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getMetaConf_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetKey()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetKey()) {
          oprot.writeString(struct.key);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getMetaConf_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.key = iprot.readString();
          struct.setKeyIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class getMetaConf_result implements org.apache.thrift.TBase<getMetaConf_result, getMetaConf_result._Fields>, java.io.Serializable, Cloneable, Comparable<getMetaConf_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getMetaConf_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getMetaConf_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getMetaConf_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getMetaConf_result.class, metaDataMap);
    }

    public getMetaConf_result() {
    }

    public getMetaConf_result(
      java.lang.String success,
      MetaException o1)
    {
      this();
      this.success = success;
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public getMetaConf_result(getMetaConf_result other) {
      if (other.isSetSuccess()) {
        this.success = other.success;
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public getMetaConf_result deepCopy() {
      return new getMetaConf_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.lang.String success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.lang.String)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof getMetaConf_result)
        return this.equals((getMetaConf_result)that);
      return false;
    }

    public boolean equals(getMetaConf_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(getMetaConf_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("getMetaConf_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class getMetaConf_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public getMetaConf_resultStandardScheme getScheme() {
        return new getMetaConf_resultStandardScheme();
      }
    }

    private static class getMetaConf_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getMetaConf_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, getMetaConf_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.success = iprot.readString();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, getMetaConf_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeString(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class getMetaConf_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public getMetaConf_resultTupleScheme getScheme() {
        return new getMetaConf_resultTupleScheme();
      }
    }

    private static class getMetaConf_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getMetaConf_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, getMetaConf_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          oprot.writeString(struct.success);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, getMetaConf_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.success = iprot.readString();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class setMetaConf_args implements org.apache.thrift.TBase<setMetaConf_args, setMetaConf_args._Fields>, java.io.Serializable, Cloneable, Comparable<setMetaConf_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("setMetaConf_args");

    private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField("key", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField VALUE_FIELD_DESC = new org.apache.thrift.protocol.TField("value", org.apache.thrift.protocol.TType.STRING, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new setMetaConf_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new setMetaConf_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String key; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String value; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      KEY((short)1, "key"),
      VALUE((short)2, "value");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // KEY
            return KEY;
          case 2: // VALUE
            return VALUE;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.KEY, new org.apache.thrift.meta_data.FieldMetaData("key", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.VALUE, new org.apache.thrift.meta_data.FieldMetaData("value", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(setMetaConf_args.class, metaDataMap);
    }

    public setMetaConf_args() {
    }

    public setMetaConf_args(
      java.lang.String key,
      java.lang.String value)
    {
      this();
      this.key = key;
      this.value = value;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public setMetaConf_args(setMetaConf_args other) {
      if (other.isSetKey()) {
        this.key = other.key;
      }
      if (other.isSetValue()) {
        this.value = other.value;
      }
    }

    public setMetaConf_args deepCopy() {
      return new setMetaConf_args(this);
    }

    @Override
    public void clear() {
      this.key = null;
      this.value = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getKey() {
      return this.key;
    }

    public void setKey(@org.apache.thrift.annotation.Nullable java.lang.String key) {
      this.key = key;
    }

    public void unsetKey() {
      this.key = null;
    }

    /** Returns true if field key is set (has been assigned a value) and false otherwise */
    public boolean isSetKey() {
      return this.key != null;
    }

    public void setKeyIsSet(boolean value) {
      if (!value) {
        this.key = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getValue() {
      return this.value;
    }

    public void setValue(@org.apache.thrift.annotation.Nullable java.lang.String value) {
      this.value = value;
    }

    public void unsetValue() {
      this.value = null;
    }

    /** Returns true if field value is set (has been assigned a value) and false otherwise */
    public boolean isSetValue() {
      return this.value != null;
    }

    public void setValueIsSet(boolean value) {
      if (!value) {
        this.value = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case KEY:
        if (value == null) {
          unsetKey();
        } else {
          setKey((java.lang.String)value);
        }
        break;

      case VALUE:
        if (value == null) {
          unsetValue();
        } else {
          setValue((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case KEY:
        return getKey();

      case VALUE:
        return getValue();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case KEY:
        return isSetKey();
      case VALUE:
        return isSetValue();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof setMetaConf_args)
        return this.equals((setMetaConf_args)that);
      return false;
    }

    public boolean equals(setMetaConf_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_key = true && this.isSetKey();
      boolean that_present_key = true && that.isSetKey();
      if (this_present_key || that_present_key) {
        if (!(this_present_key && that_present_key))
          return false;
        if (!this.key.equals(that.key))
          return false;
      }

      boolean this_present_value = true && this.isSetValue();
      boolean that_present_value = true && that.isSetValue();
      if (this_present_value || that_present_value) {
        if (!(this_present_value && that_present_value))
          return false;
        if (!this.value.equals(that.value))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
      if (isSetKey())
        hashCode = hashCode * 8191 + key.hashCode();

      hashCode = hashCode * 8191 + ((isSetValue()) ? 131071 : 524287);
      if (isSetValue())
        hashCode = hashCode * 8191 + value.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(setMetaConf_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetKey(), other.isSetKey());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetKey()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.key, other.key);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetValue(), other.isSetValue());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetValue()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.value, other.value);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("setMetaConf_args(");
      boolean first = true;

      sb.append("key:");
      if (this.key == null) {
        sb.append("null");
      } else {
        sb.append(this.key);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("value:");
      if (this.value == null) {
        sb.append("null");
      } else {
        sb.append(this.value);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class setMetaConf_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public setMetaConf_argsStandardScheme getScheme() {
        return new setMetaConf_argsStandardScheme();
      }
    }

    private static class setMetaConf_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<setMetaConf_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, setMetaConf_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // KEY
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.key = iprot.readString();
                struct.setKeyIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // VALUE
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.value = iprot.readString();
                struct.setValueIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, setMetaConf_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.key != null) {
          oprot.writeFieldBegin(KEY_FIELD_DESC);
          oprot.writeString(struct.key);
          oprot.writeFieldEnd();
        }
        if (struct.value != null) {
          oprot.writeFieldBegin(VALUE_FIELD_DESC);
          oprot.writeString(struct.value);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class setMetaConf_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public setMetaConf_argsTupleScheme getScheme() {
        return new setMetaConf_argsTupleScheme();
      }
    }

    private static class setMetaConf_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<setMetaConf_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, setMetaConf_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetKey()) {
          optionals.set(0);
        }
        if (struct.isSetValue()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetKey()) {
          oprot.writeString(struct.key);
        }
        if (struct.isSetValue()) {
          oprot.writeString(struct.value);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, setMetaConf_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.key = iprot.readString();
          struct.setKeyIsSet(true);
        }
        if (incoming.get(1)) {
          struct.value = iprot.readString();
          struct.setValueIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class setMetaConf_result implements org.apache.thrift.TBase<setMetaConf_result, setMetaConf_result._Fields>, java.io.Serializable, Cloneable, Comparable<setMetaConf_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("setMetaConf_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new setMetaConf_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new setMetaConf_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(setMetaConf_result.class, metaDataMap);
    }

    public setMetaConf_result() {
    }

    public setMetaConf_result(
      MetaException o1)
    {
      this();
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public setMetaConf_result(setMetaConf_result other) {
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public setMetaConf_result deepCopy() {
      return new setMetaConf_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof setMetaConf_result)
        return this.equals((setMetaConf_result)that);
      return false;
    }

    public boolean equals(setMetaConf_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(setMetaConf_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("setMetaConf_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class setMetaConf_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public setMetaConf_resultStandardScheme getScheme() {
        return new setMetaConf_resultStandardScheme();
      }
    }

    private static class setMetaConf_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<setMetaConf_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, setMetaConf_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, setMetaConf_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class setMetaConf_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public setMetaConf_resultTupleScheme getScheme() {
        return new setMetaConf_resultTupleScheme();
      }
    }

    private static class setMetaConf_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<setMetaConf_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, setMetaConf_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, setMetaConf_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class init_schema_args implements org.apache.thrift.TBase<init_schema_args, init_schema_args._Fields>, java.io.Serializable, Cloneable, Comparable<init_schema_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("init_schema_args");

    private static final org.apache.thrift.protocol.TField DB_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("dbType", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField USERNAME_FIELD_DESC = new org.apache.thrift.protocol.TField("username", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField PASSWORD_FIELD_DESC = new org.apache.thrift.protocol.TField("password", org.apache.thrift.protocol.TType.STRING, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new init_schema_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new init_schema_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String dbType; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String username; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String password; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_TYPE((short)1, "dbType"),
      USERNAME((short)2, "username"),
      PASSWORD((short)3, "password");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_TYPE
            return DB_TYPE;
          case 2: // USERNAME
            return USERNAME;
          case 3: // PASSWORD
            return PASSWORD;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_TYPE, new org.apache.thrift.meta_data.FieldMetaData("dbType", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.USERNAME, new org.apache.thrift.meta_data.FieldMetaData("username", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PASSWORD, new org.apache.thrift.meta_data.FieldMetaData("password", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(init_schema_args.class, metaDataMap);
    }

    public init_schema_args() {
    }

    public init_schema_args(
      java.lang.String dbType,
      java.lang.String username,
      java.lang.String password)
    {
      this();
      this.dbType = dbType;
      this.username = username;
      this.password = password;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public init_schema_args(init_schema_args other) {
      if (other.isSetDbType()) {
        this.dbType = other.dbType;
      }
      if (other.isSetUsername()) {
        this.username = other.username;
      }
      if (other.isSetPassword()) {
        this.password = other.password;
      }
    }

    public init_schema_args deepCopy() {
      return new init_schema_args(this);
    }

    @Override
    public void clear() {
      this.dbType = null;
      this.username = null;
      this.password = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDbType() {
      return this.dbType;
    }

    public void setDbType(@org.apache.thrift.annotation.Nullable java.lang.String dbType) {
      this.dbType = dbType;
    }

    public void unsetDbType() {
      this.dbType = null;
    }

    /** Returns true if field dbType is set (has been assigned a value) and false otherwise */
    public boolean isSetDbType() {
      return this.dbType != null;
    }

    public void setDbTypeIsSet(boolean value) {
      if (!value) {
        this.dbType = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getUsername() {
      return this.username;
    }

    public void setUsername(@org.apache.thrift.annotation.Nullable java.lang.String username) {
      this.username = username;
    }

    public void unsetUsername() {
      this.username = null;
    }

    /** Returns true if field username is set (has been assigned a value) and false otherwise */
    public boolean isSetUsername() {
      return this.username != null;
    }

    public void setUsernameIsSet(boolean value) {
      if (!value) {
        this.username = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getPassword() {
      return this.password;
    }

    public void setPassword(@org.apache.thrift.annotation.Nullable java.lang.String password) {
      this.password = password;
    }

    public void unsetPassword() {
      this.password = null;
    }

    /** Returns true if field password is set (has been assigned a value) and false otherwise */
    public boolean isSetPassword() {
      return this.password != null;
    }

    public void setPasswordIsSet(boolean value) {
      if (!value) {
        this.password = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_TYPE:
        if (value == null) {
          unsetDbType();
        } else {
          setDbType((java.lang.String)value);
        }
        break;

      case USERNAME:
        if (value == null) {
          unsetUsername();
        } else {
          setUsername((java.lang.String)value);
        }
        break;

      case PASSWORD:
        if (value == null) {
          unsetPassword();
        } else {
          setPassword((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_TYPE:
        return getDbType();

      case USERNAME:
        return getUsername();

      case PASSWORD:
        return getPassword();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_TYPE:
        return isSetDbType();
      case USERNAME:
        return isSetUsername();
      case PASSWORD:
        return isSetPassword();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof init_schema_args)
        return this.equals((init_schema_args)that);
      return false;
    }

    public boolean equals(init_schema_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_dbType = true && this.isSetDbType();
      boolean that_present_dbType = true && that.isSetDbType();
      if (this_present_dbType || that_present_dbType) {
        if (!(this_present_dbType && that_present_dbType))
          return false;
        if (!this.dbType.equals(that.dbType))
          return false;
      }

      boolean this_present_username = true && this.isSetUsername();
      boolean that_present_username = true && that.isSetUsername();
      if (this_present_username || that_present_username) {
        if (!(this_present_username && that_present_username))
          return false;
        if (!this.username.equals(that.username))
          return false;
      }

      boolean this_present_password = true && this.isSetPassword();
      boolean that_present_password = true && that.isSetPassword();
      if (this_present_password || that_present_password) {
        if (!(this_present_password && that_present_password))
          return false;
        if (!this.password.equals(that.password))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDbType()) ? 131071 : 524287);
      if (isSetDbType())
        hashCode = hashCode * 8191 + dbType.hashCode();

      hashCode = hashCode * 8191 + ((isSetUsername()) ? 131071 : 524287);
      if (isSetUsername())
        hashCode = hashCode * 8191 + username.hashCode();

      hashCode = hashCode * 8191 + ((isSetPassword()) ? 131071 : 524287);
      if (isSetPassword())
        hashCode = hashCode * 8191 + password.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(init_schema_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDbType(), other.isSetDbType());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDbType()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dbType, other.dbType);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetUsername(), other.isSetUsername());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUsername()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.username, other.username);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetPassword(), other.isSetPassword());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPassword()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.password, other.password);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("init_schema_args(");
      boolean first = true;

      sb.append("dbType:");
      if (this.dbType == null) {
        sb.append("null");
      } else {
        sb.append(this.dbType);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("username:");
      if (this.username == null) {
        sb.append("null");
      } else {
        sb.append(this.username);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("password:");
      if (this.password == null) {
        sb.append("null");
      } else {
        sb.append(this.password);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class init_schema_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public init_schema_argsStandardScheme getScheme() {
        return new init_schema_argsStandardScheme();
      }
    }

    private static class init_schema_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<init_schema_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, init_schema_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_TYPE
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.dbType = iprot.readString();
                struct.setDbTypeIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // USERNAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.username = iprot.readString();
                struct.setUsernameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // PASSWORD
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.password = iprot.readString();
                struct.setPasswordIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, init_schema_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.dbType != null) {
          oprot.writeFieldBegin(DB_TYPE_FIELD_DESC);
          oprot.writeString(struct.dbType);
          oprot.writeFieldEnd();
        }
        if (struct.username != null) {
          oprot.writeFieldBegin(USERNAME_FIELD_DESC);
          oprot.writeString(struct.username);
          oprot.writeFieldEnd();
        }
        if (struct.password != null) {
          oprot.writeFieldBegin(PASSWORD_FIELD_DESC);
          oprot.writeString(struct.password);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class init_schema_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public init_schema_argsTupleScheme getScheme() {
        return new init_schema_argsTupleScheme();
      }
    }

    private static class init_schema_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<init_schema_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, init_schema_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDbType()) {
          optionals.set(0);
        }
        if (struct.isSetUsername()) {
          optionals.set(1);
        }
        if (struct.isSetPassword()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetDbType()) {
          oprot.writeString(struct.dbType);
        }
        if (struct.isSetUsername()) {
          oprot.writeString(struct.username);
        }
        if (struct.isSetPassword()) {
          oprot.writeString(struct.password);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, init_schema_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.dbType = iprot.readString();
          struct.setDbTypeIsSet(true);
        }
        if (incoming.get(1)) {
          struct.username = iprot.readString();
          struct.setUsernameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.password = iprot.readString();
          struct.setPasswordIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class init_schema_result implements org.apache.thrift.TBase<init_schema_result, init_schema_result._Fields>, java.io.Serializable, Cloneable, Comparable<init_schema_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("init_schema_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
    private static final org.apache.thrift.protocol.TField EX_FIELD_DESC = new org.apache.thrift.protocol.TField("ex", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new init_schema_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new init_schema_resultTupleSchemeFactory();

    private boolean success; // required
    private @org.apache.thrift.annotation.Nullable MetaException ex; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      EX((short)1, "ex");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // EX
            return EX;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.EX, new org.apache.thrift.meta_data.FieldMetaData("ex", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(init_schema_result.class, metaDataMap);
    }

    public init_schema_result() {
    }

    public init_schema_result(
      boolean success,
      MetaException ex)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
      this.ex = ex;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public init_schema_result(init_schema_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
      if (other.isSetEx()) {
        this.ex = new MetaException(other.ex);
      }
    }

    public init_schema_result deepCopy() {
      return new init_schema_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = false;
      this.ex = null;
    }

    public boolean isSuccess() {
      return this.success;
    }

    public void setSuccess(boolean success) {
      this.success = success;
      setSuccessIsSet(true);
    }

    public void unsetSuccess() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getEx() {
      return this.ex;
    }

    public void setEx(@org.apache.thrift.annotation.Nullable MetaException ex) {
      this.ex = ex;
    }

    public void unsetEx() {
      this.ex = null;
    }

    /** Returns true if field ex is set (has been assigned a value) and false otherwise */
    public boolean isSetEx() {
      return this.ex != null;
    }

    public void setExIsSet(boolean value) {
      if (!value) {
        this.ex = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.lang.Boolean)value);
        }
        break;

      case EX:
        if (value == null) {
          unsetEx();
        } else {
          setEx((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return isSuccess();

      case EX:
        return getEx();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case EX:
        return isSetEx();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof init_schema_result)
        return this.equals((init_schema_result)that);
      return false;
    }

    public boolean equals(init_schema_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      boolean this_present_ex = true && this.isSetEx();
      boolean that_present_ex = true && that.isSetEx();
      if (this_present_ex || that_present_ex) {
        if (!(this_present_ex && that_present_ex))
          return false;
        if (!this.ex.equals(that.ex))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);

      hashCode = hashCode * 8191 + ((isSetEx()) ? 131071 : 524287);
      if (isSetEx())
        hashCode = hashCode * 8191 + ex.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(init_schema_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetEx(), other.isSetEx());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEx()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ex, other.ex);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("init_schema_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      if (!first) sb.append(", ");
      sb.append("ex:");
      if (this.ex == null) {
        sb.append("null");
      } else {
        sb.append(this.ex);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class init_schema_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public init_schema_resultStandardScheme getScheme() {
        return new init_schema_resultStandardScheme();
      }
    }

    private static class init_schema_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<init_schema_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, init_schema_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.success = iprot.readBool();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // EX
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ex = new MetaException();
                struct.ex.read(iprot);
                struct.setExIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, init_schema_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeBool(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.ex != null) {
          oprot.writeFieldBegin(EX_FIELD_DESC);
          struct.ex.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class init_schema_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public init_schema_resultTupleScheme getScheme() {
        return new init_schema_resultTupleScheme();
      }
    }

    private static class init_schema_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<init_schema_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, init_schema_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetEx()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          oprot.writeBool(struct.success);
        }
        if (struct.isSetEx()) {
          struct.ex.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, init_schema_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.success = iprot.readBool();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.ex = new MetaException();
          struct.ex.read(iprot);
          struct.setExIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_catalog_args implements org.apache.thrift.TBase<create_catalog_args, create_catalog_args._Fields>, java.io.Serializable, Cloneable, Comparable<create_catalog_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("create_catalog_args");

    private static final org.apache.thrift.protocol.TField CATALOG_FIELD_DESC = new org.apache.thrift.protocol.TField("catalog", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new create_catalog_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new create_catalog_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable CreateCatalogRequest catalog; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      CATALOG((short)1, "catalog");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // CATALOG
            return CATALOG;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.CATALOG, new org.apache.thrift.meta_data.FieldMetaData("catalog", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CreateCatalogRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(create_catalog_args.class, metaDataMap);
    }

    public create_catalog_args() {
    }

    public create_catalog_args(
      CreateCatalogRequest catalog)
    {
      this();
      this.catalog = catalog;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public create_catalog_args(create_catalog_args other) {
      if (other.isSetCatalog()) {
        this.catalog = new CreateCatalogRequest(other.catalog);
      }
    }

    public create_catalog_args deepCopy() {
      return new create_catalog_args(this);
    }

    @Override
    public void clear() {
      this.catalog = null;
    }

    @org.apache.thrift.annotation.Nullable
    public CreateCatalogRequest getCatalog() {
      return this.catalog;
    }

    public void setCatalog(@org.apache.thrift.annotation.Nullable CreateCatalogRequest catalog) {
      this.catalog = catalog;
    }

    public void unsetCatalog() {
      this.catalog = null;
    }

    /** Returns true if field catalog is set (has been assigned a value) and false otherwise */
    public boolean isSetCatalog() {
      return this.catalog != null;
    }

    public void setCatalogIsSet(boolean value) {
      if (!value) {
        this.catalog = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case CATALOG:
        if (value == null) {
          unsetCatalog();
        } else {
          setCatalog((CreateCatalogRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case CATALOG:
        return getCatalog();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case CATALOG:
        return isSetCatalog();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof create_catalog_args)
        return this.equals((create_catalog_args)that);
      return false;
    }

    public boolean equals(create_catalog_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_catalog = true && this.isSetCatalog();
      boolean that_present_catalog = true && that.isSetCatalog();
      if (this_present_catalog || that_present_catalog) {
        if (!(this_present_catalog && that_present_catalog))
          return false;
        if (!this.catalog.equals(that.catalog))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetCatalog()) ? 131071 : 524287);
      if (isSetCatalog())
        hashCode = hashCode * 8191 + catalog.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(create_catalog_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetCatalog(), other.isSetCatalog());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetCatalog()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.catalog, other.catalog);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("create_catalog_args(");
      boolean first = true;

      sb.append("catalog:");
      if (this.catalog == null) {
        sb.append("null");
      } else {
        sb.append(this.catalog);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (catalog != null) {
        catalog.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class create_catalog_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_catalog_argsStandardScheme getScheme() {
        return new create_catalog_argsStandardScheme();
      }
    }

    private static class create_catalog_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<create_catalog_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, create_catalog_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // CATALOG
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.catalog = new CreateCatalogRequest();
                struct.catalog.read(iprot);
                struct.setCatalogIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, create_catalog_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.catalog != null) {
          oprot.writeFieldBegin(CATALOG_FIELD_DESC);
          struct.catalog.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class create_catalog_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_catalog_argsTupleScheme getScheme() {
        return new create_catalog_argsTupleScheme();
      }
    }

    private static class create_catalog_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<create_catalog_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, create_catalog_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetCatalog()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetCatalog()) {
          struct.catalog.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, create_catalog_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.catalog = new CreateCatalogRequest();
          struct.catalog.read(iprot);
          struct.setCatalogIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_catalog_result implements org.apache.thrift.TBase<create_catalog_result, create_catalog_result._Fields>, java.io.Serializable, Cloneable, Comparable<create_catalog_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("create_catalog_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new create_catalog_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new create_catalog_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable AlreadyExistsException o1; // required
    private @org.apache.thrift.annotation.Nullable InvalidObjectException o2; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AlreadyExistsException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidObjectException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(create_catalog_result.class, metaDataMap);
    }

    public create_catalog_result() {
    }

    public create_catalog_result(
      AlreadyExistsException o1,
      InvalidObjectException o2,
      MetaException o3)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public create_catalog_result(create_catalog_result other) {
      if (other.isSetO1()) {
        this.o1 = new AlreadyExistsException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new InvalidObjectException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
    }

    public create_catalog_result deepCopy() {
      return new create_catalog_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public AlreadyExistsException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable AlreadyExistsException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable InvalidObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((AlreadyExistsException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((InvalidObjectException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof create_catalog_result)
        return this.equals((create_catalog_result)that);
      return false;
    }

    public boolean equals(create_catalog_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(create_catalog_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("create_catalog_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class create_catalog_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_catalog_resultStandardScheme getScheme() {
        return new create_catalog_resultStandardScheme();
      }
    }

    private static class create_catalog_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<create_catalog_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, create_catalog_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new AlreadyExistsException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new InvalidObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, create_catalog_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class create_catalog_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_catalog_resultTupleScheme getScheme() {
        return new create_catalog_resultTupleScheme();
      }
    }

    private static class create_catalog_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<create_catalog_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, create_catalog_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        if (struct.isSetO3()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, create_catalog_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.o1 = new AlreadyExistsException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new InvalidObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_catalog_args implements org.apache.thrift.TBase<alter_catalog_args, alter_catalog_args._Fields>, java.io.Serializable, Cloneable, Comparable<alter_catalog_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("alter_catalog_args");

    private static final org.apache.thrift.protocol.TField RQST_FIELD_DESC = new org.apache.thrift.protocol.TField("rqst", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new alter_catalog_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new alter_catalog_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable AlterCatalogRequest rqst; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      RQST((short)1, "rqst");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // RQST
            return RQST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.RQST, new org.apache.thrift.meta_data.FieldMetaData("rqst", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AlterCatalogRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(alter_catalog_args.class, metaDataMap);
    }

    public alter_catalog_args() {
    }

    public alter_catalog_args(
      AlterCatalogRequest rqst)
    {
      this();
      this.rqst = rqst;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public alter_catalog_args(alter_catalog_args other) {
      if (other.isSetRqst()) {
        this.rqst = new AlterCatalogRequest(other.rqst);
      }
    }

    public alter_catalog_args deepCopy() {
      return new alter_catalog_args(this);
    }

    @Override
    public void clear() {
      this.rqst = null;
    }

    @org.apache.thrift.annotation.Nullable
    public AlterCatalogRequest getRqst() {
      return this.rqst;
    }

    public void setRqst(@org.apache.thrift.annotation.Nullable AlterCatalogRequest rqst) {
      this.rqst = rqst;
    }

    public void unsetRqst() {
      this.rqst = null;
    }

    /** Returns true if field rqst is set (has been assigned a value) and false otherwise */
    public boolean isSetRqst() {
      return this.rqst != null;
    }

    public void setRqstIsSet(boolean value) {
      if (!value) {
        this.rqst = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case RQST:
        if (value == null) {
          unsetRqst();
        } else {
          setRqst((AlterCatalogRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case RQST:
        return getRqst();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case RQST:
        return isSetRqst();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof alter_catalog_args)
        return this.equals((alter_catalog_args)that);
      return false;
    }

    public boolean equals(alter_catalog_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_rqst = true && this.isSetRqst();
      boolean that_present_rqst = true && that.isSetRqst();
      if (this_present_rqst || that_present_rqst) {
        if (!(this_present_rqst && that_present_rqst))
          return false;
        if (!this.rqst.equals(that.rqst))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRqst()) ? 131071 : 524287);
      if (isSetRqst())
        hashCode = hashCode * 8191 + rqst.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(alter_catalog_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRqst(), other.isSetRqst());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRqst()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rqst, other.rqst);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("alter_catalog_args(");
      boolean first = true;

      sb.append("rqst:");
      if (this.rqst == null) {
        sb.append("null");
      } else {
        sb.append(this.rqst);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (rqst != null) {
        rqst.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class alter_catalog_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_catalog_argsStandardScheme getScheme() {
        return new alter_catalog_argsStandardScheme();
      }
    }

    private static class alter_catalog_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<alter_catalog_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, alter_catalog_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // RQST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.rqst = new AlterCatalogRequest();
                struct.rqst.read(iprot);
                struct.setRqstIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, alter_catalog_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.rqst != null) {
          oprot.writeFieldBegin(RQST_FIELD_DESC);
          struct.rqst.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class alter_catalog_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_catalog_argsTupleScheme getScheme() {
        return new alter_catalog_argsTupleScheme();
      }
    }

    private static class alter_catalog_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<alter_catalog_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, alter_catalog_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRqst()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRqst()) {
          struct.rqst.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, alter_catalog_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.rqst = new AlterCatalogRequest();
          struct.rqst.read(iprot);
          struct.setRqstIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_catalog_result implements org.apache.thrift.TBase<alter_catalog_result, alter_catalog_result._Fields>, java.io.Serializable, Cloneable, Comparable<alter_catalog_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("alter_catalog_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new alter_catalog_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new alter_catalog_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable InvalidOperationException o2; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidOperationException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(alter_catalog_result.class, metaDataMap);
    }

    public alter_catalog_result() {
    }

    public alter_catalog_result(
      NoSuchObjectException o1,
      InvalidOperationException o2,
      MetaException o3)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public alter_catalog_result(alter_catalog_result other) {
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new InvalidOperationException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
    }

    public alter_catalog_result deepCopy() {
      return new alter_catalog_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidOperationException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable InvalidOperationException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((InvalidOperationException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof alter_catalog_result)
        return this.equals((alter_catalog_result)that);
      return false;
    }

    public boolean equals(alter_catalog_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(alter_catalog_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("alter_catalog_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class alter_catalog_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_catalog_resultStandardScheme getScheme() {
        return new alter_catalog_resultStandardScheme();
      }
    }

    private static class alter_catalog_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<alter_catalog_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, alter_catalog_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new InvalidOperationException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, alter_catalog_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class alter_catalog_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_catalog_resultTupleScheme getScheme() {
        return new alter_catalog_resultTupleScheme();
      }
    }

    private static class alter_catalog_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<alter_catalog_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, alter_catalog_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        if (struct.isSetO3()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, alter_catalog_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new InvalidOperationException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_catalog_args implements org.apache.thrift.TBase<get_catalog_args, get_catalog_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_catalog_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_catalog_args");

    private static final org.apache.thrift.protocol.TField CAT_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("catName", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_catalog_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_catalog_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable GetCatalogRequest catName; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      CAT_NAME((short)1, "catName");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // CAT_NAME
            return CAT_NAME;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.CAT_NAME, new org.apache.thrift.meta_data.FieldMetaData("catName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetCatalogRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_catalog_args.class, metaDataMap);
    }

    public get_catalog_args() {
    }

    public get_catalog_args(
      GetCatalogRequest catName)
    {
      this();
      this.catName = catName;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_catalog_args(get_catalog_args other) {
      if (other.isSetCatName()) {
        this.catName = new GetCatalogRequest(other.catName);
      }
    }

    public get_catalog_args deepCopy() {
      return new get_catalog_args(this);
    }

    @Override
    public void clear() {
      this.catName = null;
    }

    @org.apache.thrift.annotation.Nullable
    public GetCatalogRequest getCatName() {
      return this.catName;
    }

    public void setCatName(@org.apache.thrift.annotation.Nullable GetCatalogRequest catName) {
      this.catName = catName;
    }

    public void unsetCatName() {
      this.catName = null;
    }

    /** Returns true if field catName is set (has been assigned a value) and false otherwise */
    public boolean isSetCatName() {
      return this.catName != null;
    }

    public void setCatNameIsSet(boolean value) {
      if (!value) {
        this.catName = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case CAT_NAME:
        if (value == null) {
          unsetCatName();
        } else {
          setCatName((GetCatalogRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case CAT_NAME:
        return getCatName();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case CAT_NAME:
        return isSetCatName();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_catalog_args)
        return this.equals((get_catalog_args)that);
      return false;
    }

    public boolean equals(get_catalog_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_catName = true && this.isSetCatName();
      boolean that_present_catName = true && that.isSetCatName();
      if (this_present_catName || that_present_catName) {
        if (!(this_present_catName && that_present_catName))
          return false;
        if (!this.catName.equals(that.catName))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetCatName()) ? 131071 : 524287);
      if (isSetCatName())
        hashCode = hashCode * 8191 + catName.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_catalog_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetCatName(), other.isSetCatName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetCatName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.catName, other.catName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_catalog_args(");
      boolean first = true;

      sb.append("catName:");
      if (this.catName == null) {
        sb.append("null");
      } else {
        sb.append(this.catName);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (catName != null) {
        catName.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_catalog_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_catalog_argsStandardScheme getScheme() {
        return new get_catalog_argsStandardScheme();
      }
    }

    private static class get_catalog_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_catalog_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_catalog_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // CAT_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.catName = new GetCatalogRequest();
                struct.catName.read(iprot);
                struct.setCatNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_catalog_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.catName != null) {
          oprot.writeFieldBegin(CAT_NAME_FIELD_DESC);
          struct.catName.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_catalog_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_catalog_argsTupleScheme getScheme() {
        return new get_catalog_argsTupleScheme();
      }
    }

    private static class get_catalog_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_catalog_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_catalog_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetCatName()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetCatName()) {
          struct.catName.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_catalog_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.catName = new GetCatalogRequest();
          struct.catName.read(iprot);
          struct.setCatNameIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_catalog_result implements org.apache.thrift.TBase<get_catalog_result, get_catalog_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_catalog_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_catalog_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_catalog_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_catalog_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable GetCatalogResponse success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetCatalogResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_catalog_result.class, metaDataMap);
    }

    public get_catalog_result() {
    }

    public get_catalog_result(
      GetCatalogResponse success,
      NoSuchObjectException o1,
      MetaException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_catalog_result(get_catalog_result other) {
      if (other.isSetSuccess()) {
        this.success = new GetCatalogResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public get_catalog_result deepCopy() {
      return new get_catalog_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public GetCatalogResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable GetCatalogResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((GetCatalogResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_catalog_result)
        return this.equals((get_catalog_result)that);
      return false;
    }

    public boolean equals(get_catalog_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_catalog_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_catalog_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_catalog_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_catalog_resultStandardScheme getScheme() {
        return new get_catalog_resultStandardScheme();
      }
    }

    private static class get_catalog_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_catalog_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_catalog_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new GetCatalogResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_catalog_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_catalog_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_catalog_resultTupleScheme getScheme() {
        return new get_catalog_resultTupleScheme();
      }
    }

    private static class get_catalog_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_catalog_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_catalog_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_catalog_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = new GetCatalogResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_catalogs_args implements org.apache.thrift.TBase<get_catalogs_args, get_catalogs_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_catalogs_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_catalogs_args");


    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_catalogs_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_catalogs_argsTupleSchemeFactory();


    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
;

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_catalogs_args.class, metaDataMap);
    }

    public get_catalogs_args() {
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_catalogs_args(get_catalogs_args other) {
    }

    public get_catalogs_args deepCopy() {
      return new get_catalogs_args(this);
    }

    @Override
    public void clear() {
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_catalogs_args)
        return this.equals((get_catalogs_args)that);
      return false;
    }

    public boolean equals(get_catalogs_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      return hashCode;
    }

    @Override
    public int compareTo(get_catalogs_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_catalogs_args(");
      boolean first = true;

      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_catalogs_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_catalogs_argsStandardScheme getScheme() {
        return new get_catalogs_argsStandardScheme();
      }
    }

    private static class get_catalogs_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_catalogs_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_catalogs_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_catalogs_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_catalogs_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_catalogs_argsTupleScheme getScheme() {
        return new get_catalogs_argsTupleScheme();
      }
    }

    private static class get_catalogs_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_catalogs_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_catalogs_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_catalogs_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_catalogs_result implements org.apache.thrift.TBase<get_catalogs_result, get_catalogs_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_catalogs_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_catalogs_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_catalogs_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_catalogs_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable GetCatalogsResponse success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetCatalogsResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_catalogs_result.class, metaDataMap);
    }

    public get_catalogs_result() {
    }

    public get_catalogs_result(
      GetCatalogsResponse success,
      MetaException o1)
    {
      this();
      this.success = success;
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_catalogs_result(get_catalogs_result other) {
      if (other.isSetSuccess()) {
        this.success = new GetCatalogsResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public get_catalogs_result deepCopy() {
      return new get_catalogs_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public GetCatalogsResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable GetCatalogsResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((GetCatalogsResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_catalogs_result)
        return this.equals((get_catalogs_result)that);
      return false;
    }

    public boolean equals(get_catalogs_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_catalogs_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_catalogs_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_catalogs_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_catalogs_resultStandardScheme getScheme() {
        return new get_catalogs_resultStandardScheme();
      }
    }

    private static class get_catalogs_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_catalogs_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_catalogs_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new GetCatalogsResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_catalogs_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_catalogs_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_catalogs_resultTupleScheme getScheme() {
        return new get_catalogs_resultTupleScheme();
      }
    }

    private static class get_catalogs_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_catalogs_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_catalogs_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_catalogs_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.success = new GetCatalogsResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_catalog_args implements org.apache.thrift.TBase<drop_catalog_args, drop_catalog_args._Fields>, java.io.Serializable, Cloneable, Comparable<drop_catalog_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_catalog_args");

    private static final org.apache.thrift.protocol.TField CAT_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("catName", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_catalog_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_catalog_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable DropCatalogRequest catName; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      CAT_NAME((short)1, "catName");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // CAT_NAME
            return CAT_NAME;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.CAT_NAME, new org.apache.thrift.meta_data.FieldMetaData("catName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, DropCatalogRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_catalog_args.class, metaDataMap);
    }

    public drop_catalog_args() {
    }

    public drop_catalog_args(
      DropCatalogRequest catName)
    {
      this();
      this.catName = catName;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_catalog_args(drop_catalog_args other) {
      if (other.isSetCatName()) {
        this.catName = new DropCatalogRequest(other.catName);
      }
    }

    public drop_catalog_args deepCopy() {
      return new drop_catalog_args(this);
    }

    @Override
    public void clear() {
      this.catName = null;
    }

    @org.apache.thrift.annotation.Nullable
    public DropCatalogRequest getCatName() {
      return this.catName;
    }

    public void setCatName(@org.apache.thrift.annotation.Nullable DropCatalogRequest catName) {
      this.catName = catName;
    }

    public void unsetCatName() {
      this.catName = null;
    }

    /** Returns true if field catName is set (has been assigned a value) and false otherwise */
    public boolean isSetCatName() {
      return this.catName != null;
    }

    public void setCatNameIsSet(boolean value) {
      if (!value) {
        this.catName = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case CAT_NAME:
        if (value == null) {
          unsetCatName();
        } else {
          setCatName((DropCatalogRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case CAT_NAME:
        return getCatName();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case CAT_NAME:
        return isSetCatName();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_catalog_args)
        return this.equals((drop_catalog_args)that);
      return false;
    }

    public boolean equals(drop_catalog_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_catName = true && this.isSetCatName();
      boolean that_present_catName = true && that.isSetCatName();
      if (this_present_catName || that_present_catName) {
        if (!(this_present_catName && that_present_catName))
          return false;
        if (!this.catName.equals(that.catName))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetCatName()) ? 131071 : 524287);
      if (isSetCatName())
        hashCode = hashCode * 8191 + catName.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(drop_catalog_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetCatName(), other.isSetCatName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetCatName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.catName, other.catName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_catalog_args(");
      boolean first = true;

      sb.append("catName:");
      if (this.catName == null) {
        sb.append("null");
      } else {
        sb.append(this.catName);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (catName != null) {
        catName.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_catalog_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_catalog_argsStandardScheme getScheme() {
        return new drop_catalog_argsStandardScheme();
      }
    }

    private static class drop_catalog_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_catalog_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_catalog_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // CAT_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.catName = new DropCatalogRequest();
                struct.catName.read(iprot);
                struct.setCatNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_catalog_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.catName != null) {
          oprot.writeFieldBegin(CAT_NAME_FIELD_DESC);
          struct.catName.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_catalog_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_catalog_argsTupleScheme getScheme() {
        return new drop_catalog_argsTupleScheme();
      }
    }

    private static class drop_catalog_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_catalog_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_catalog_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetCatName()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetCatName()) {
          struct.catName.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_catalog_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.catName = new DropCatalogRequest();
          struct.catName.read(iprot);
          struct.setCatNameIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_catalog_result implements org.apache.thrift.TBase<drop_catalog_result, drop_catalog_result._Fields>, java.io.Serializable, Cloneable, Comparable<drop_catalog_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_catalog_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_catalog_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_catalog_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable InvalidOperationException o2; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidOperationException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_catalog_result.class, metaDataMap);
    }

    public drop_catalog_result() {
    }

    public drop_catalog_result(
      NoSuchObjectException o1,
      InvalidOperationException o2,
      MetaException o3)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_catalog_result(drop_catalog_result other) {
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new InvalidOperationException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
    }

    public drop_catalog_result deepCopy() {
      return new drop_catalog_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidOperationException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable InvalidOperationException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((InvalidOperationException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_catalog_result)
        return this.equals((drop_catalog_result)that);
      return false;
    }

    public boolean equals(drop_catalog_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(drop_catalog_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_catalog_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_catalog_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_catalog_resultStandardScheme getScheme() {
        return new drop_catalog_resultStandardScheme();
      }
    }

    private static class drop_catalog_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_catalog_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_catalog_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new InvalidOperationException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_catalog_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_catalog_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_catalog_resultTupleScheme getScheme() {
        return new drop_catalog_resultTupleScheme();
      }
    }

    private static class drop_catalog_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_catalog_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_catalog_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        if (struct.isSetO3()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_catalog_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new InvalidOperationException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_database_args implements org.apache.thrift.TBase<create_database_args, create_database_args._Fields>, java.io.Serializable, Cloneable, Comparable<create_database_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("create_database_args");

    private static final org.apache.thrift.protocol.TField DATABASE_FIELD_DESC = new org.apache.thrift.protocol.TField("database", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new create_database_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new create_database_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable Database database; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DATABASE((short)1, "database");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DATABASE
            return DATABASE;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DATABASE, new org.apache.thrift.meta_data.FieldMetaData("database", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Database.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(create_database_args.class, metaDataMap);
    }

    public create_database_args() {
    }

    public create_database_args(
      Database database)
    {
      this();
      this.database = database;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public create_database_args(create_database_args other) {
      if (other.isSetDatabase()) {
        this.database = new Database(other.database);
      }
    }

    public create_database_args deepCopy() {
      return new create_database_args(this);
    }

    @Override
    public void clear() {
      this.database = null;
    }

    @org.apache.thrift.annotation.Nullable
    public Database getDatabase() {
      return this.database;
    }

    public void setDatabase(@org.apache.thrift.annotation.Nullable Database database) {
      this.database = database;
    }

    public void unsetDatabase() {
      this.database = null;
    }

    /** Returns true if field database is set (has been assigned a value) and false otherwise */
    public boolean isSetDatabase() {
      return this.database != null;
    }

    public void setDatabaseIsSet(boolean value) {
      if (!value) {
        this.database = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DATABASE:
        if (value == null) {
          unsetDatabase();
        } else {
          setDatabase((Database)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DATABASE:
        return getDatabase();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DATABASE:
        return isSetDatabase();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof create_database_args)
        return this.equals((create_database_args)that);
      return false;
    }

    public boolean equals(create_database_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_database = true && this.isSetDatabase();
      boolean that_present_database = true && that.isSetDatabase();
      if (this_present_database || that_present_database) {
        if (!(this_present_database && that_present_database))
          return false;
        if (!this.database.equals(that.database))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDatabase()) ? 131071 : 524287);
      if (isSetDatabase())
        hashCode = hashCode * 8191 + database.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(create_database_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDatabase(), other.isSetDatabase());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDatabase()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.database, other.database);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("create_database_args(");
      boolean first = true;

      sb.append("database:");
      if (this.database == null) {
        sb.append("null");
      } else {
        sb.append(this.database);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (database != null) {
        database.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class create_database_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_database_argsStandardScheme getScheme() {
        return new create_database_argsStandardScheme();
      }
    }

    private static class create_database_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<create_database_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, create_database_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DATABASE
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.database = new Database();
                struct.database.read(iprot);
                struct.setDatabaseIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, create_database_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.database != null) {
          oprot.writeFieldBegin(DATABASE_FIELD_DESC);
          struct.database.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class create_database_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_database_argsTupleScheme getScheme() {
        return new create_database_argsTupleScheme();
      }
    }

    private static class create_database_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<create_database_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, create_database_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDatabase()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetDatabase()) {
          struct.database.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, create_database_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.database = new Database();
          struct.database.read(iprot);
          struct.setDatabaseIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_database_result implements org.apache.thrift.TBase<create_database_result, create_database_result._Fields>, java.io.Serializable, Cloneable, Comparable<create_database_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("create_database_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new create_database_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new create_database_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable AlreadyExistsException o1; // required
    private @org.apache.thrift.annotation.Nullable InvalidObjectException o2; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AlreadyExistsException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidObjectException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(create_database_result.class, metaDataMap);
    }

    public create_database_result() {
    }

    public create_database_result(
      AlreadyExistsException o1,
      InvalidObjectException o2,
      MetaException o3)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public create_database_result(create_database_result other) {
      if (other.isSetO1()) {
        this.o1 = new AlreadyExistsException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new InvalidObjectException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
    }

    public create_database_result deepCopy() {
      return new create_database_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public AlreadyExistsException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable AlreadyExistsException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable InvalidObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((AlreadyExistsException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((InvalidObjectException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof create_database_result)
        return this.equals((create_database_result)that);
      return false;
    }

    public boolean equals(create_database_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(create_database_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("create_database_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class create_database_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_database_resultStandardScheme getScheme() {
        return new create_database_resultStandardScheme();
      }
    }

    private static class create_database_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<create_database_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, create_database_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new AlreadyExistsException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new InvalidObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, create_database_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class create_database_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_database_resultTupleScheme getScheme() {
        return new create_database_resultTupleScheme();
      }
    }

    private static class create_database_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<create_database_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, create_database_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        if (struct.isSetO3()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, create_database_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.o1 = new AlreadyExistsException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new InvalidObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_database_args implements org.apache.thrift.TBase<get_database_args, get_database_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_database_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_database_args");

    private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_database_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_database_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String name; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      NAME((short)1, "name");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // NAME
            return NAME;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_database_args.class, metaDataMap);
    }

    public get_database_args() {
    }

    public get_database_args(
      java.lang.String name)
    {
      this();
      this.name = name;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_database_args(get_database_args other) {
      if (other.isSetName()) {
        this.name = other.name;
      }
    }

    public get_database_args deepCopy() {
      return new get_database_args(this);
    }

    @Override
    public void clear() {
      this.name = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getName() {
      return this.name;
    }

    public void setName(@org.apache.thrift.annotation.Nullable java.lang.String name) {
      this.name = name;
    }

    public void unsetName() {
      this.name = null;
    }

    /** Returns true if field name is set (has been assigned a value) and false otherwise */
    public boolean isSetName() {
      return this.name != null;
    }

    public void setNameIsSet(boolean value) {
      if (!value) {
        this.name = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case NAME:
        if (value == null) {
          unsetName();
        } else {
          setName((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case NAME:
        return getName();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case NAME:
        return isSetName();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_database_args)
        return this.equals((get_database_args)that);
      return false;
    }

    public boolean equals(get_database_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_name = true && this.isSetName();
      boolean that_present_name = true && that.isSetName();
      if (this_present_name || that_present_name) {
        if (!(this_present_name && that_present_name))
          return false;
        if (!this.name.equals(that.name))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetName()) ? 131071 : 524287);
      if (isSetName())
        hashCode = hashCode * 8191 + name.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_database_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetName(), other.isSetName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, other.name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_database_args(");
      boolean first = true;

      sb.append("name:");
      if (this.name == null) {
        sb.append("null");
      } else {
        sb.append(this.name);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_database_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_database_argsStandardScheme getScheme() {
        return new get_database_argsStandardScheme();
      }
    }

    private static class get_database_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_database_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_database_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.name = iprot.readString();
                struct.setNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_database_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.name != null) {
          oprot.writeFieldBegin(NAME_FIELD_DESC);
          oprot.writeString(struct.name);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_database_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_database_argsTupleScheme getScheme() {
        return new get_database_argsTupleScheme();
      }
    }

    private static class get_database_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_database_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_database_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetName()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetName()) {
          oprot.writeString(struct.name);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_database_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.name = iprot.readString();
          struct.setNameIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_database_result implements org.apache.thrift.TBase<get_database_result, get_database_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_database_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_database_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_database_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_database_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable Database success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Database.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_database_result.class, metaDataMap);
    }

    public get_database_result() {
    }

    public get_database_result(
      Database success,
      NoSuchObjectException o1,
      MetaException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_database_result(get_database_result other) {
      if (other.isSetSuccess()) {
        this.success = new Database(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public get_database_result deepCopy() {
      return new get_database_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public Database getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable Database success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Database)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_database_result)
        return this.equals((get_database_result)that);
      return false;
    }

    public boolean equals(get_database_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_database_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_database_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_database_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_database_resultStandardScheme getScheme() {
        return new get_database_resultStandardScheme();
      }
    }

    private static class get_database_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_database_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_database_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new Database();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_database_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_database_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_database_resultTupleScheme getScheme() {
        return new get_database_resultTupleScheme();
      }
    }

    private static class get_database_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_database_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_database_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_database_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = new Database();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_database_args implements org.apache.thrift.TBase<drop_database_args, drop_database_args._Fields>, java.io.Serializable, Cloneable, Comparable<drop_database_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_database_args");

    private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField DELETE_DATA_FIELD_DESC = new org.apache.thrift.protocol.TField("deleteData", org.apache.thrift.protocol.TType.BOOL, (short)2);
    private static final org.apache.thrift.protocol.TField CASCADE_FIELD_DESC = new org.apache.thrift.protocol.TField("cascade", org.apache.thrift.protocol.TType.BOOL, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_database_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_database_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String name; // required
    private boolean deleteData; // required
    private boolean cascade; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      NAME((short)1, "name"),
      DELETE_DATA((short)2, "deleteData"),
      CASCADE((short)3, "cascade");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // NAME
            return NAME;
          case 2: // DELETE_DATA
            return DELETE_DATA;
          case 3: // CASCADE
            return CASCADE;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __DELETEDATA_ISSET_ID = 0;
    private static final int __CASCADE_ISSET_ID = 1;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.DELETE_DATA, new org.apache.thrift.meta_data.FieldMetaData("deleteData", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.CASCADE, new org.apache.thrift.meta_data.FieldMetaData("cascade", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_database_args.class, metaDataMap);
    }

    public drop_database_args() {
    }

    public drop_database_args(
      java.lang.String name,
      boolean deleteData,
      boolean cascade)
    {
      this();
      this.name = name;
      this.deleteData = deleteData;
      setDeleteDataIsSet(true);
      this.cascade = cascade;
      setCascadeIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_database_args(drop_database_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetName()) {
        this.name = other.name;
      }
      this.deleteData = other.deleteData;
      this.cascade = other.cascade;
    }

    public drop_database_args deepCopy() {
      return new drop_database_args(this);
    }

    @Override
    public void clear() {
      this.name = null;
      setDeleteDataIsSet(false);
      this.deleteData = false;
      setCascadeIsSet(false);
      this.cascade = false;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getName() {
      return this.name;
    }

    public void setName(@org.apache.thrift.annotation.Nullable java.lang.String name) {
      this.name = name;
    }

    public void unsetName() {
      this.name = null;
    }

    /** Returns true if field name is set (has been assigned a value) and false otherwise */
    public boolean isSetName() {
      return this.name != null;
    }

    public void setNameIsSet(boolean value) {
      if (!value) {
        this.name = null;
      }
    }

    public boolean isDeleteData() {
      return this.deleteData;
    }

    public void setDeleteData(boolean deleteData) {
      this.deleteData = deleteData;
      setDeleteDataIsSet(true);
    }

    public void unsetDeleteData() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __DELETEDATA_ISSET_ID);
    }

    /** Returns true if field deleteData is set (has been assigned a value) and false otherwise */
    public boolean isSetDeleteData() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __DELETEDATA_ISSET_ID);
    }

    public void setDeleteDataIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __DELETEDATA_ISSET_ID, value);
    }

    public boolean isCascade() {
      return this.cascade;
    }

    public void setCascade(boolean cascade) {
      this.cascade = cascade;
      setCascadeIsSet(true);
    }

    public void unsetCascade() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __CASCADE_ISSET_ID);
    }

    /** Returns true if field cascade is set (has been assigned a value) and false otherwise */
    public boolean isSetCascade() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __CASCADE_ISSET_ID);
    }

    public void setCascadeIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __CASCADE_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case NAME:
        if (value == null) {
          unsetName();
        } else {
          setName((java.lang.String)value);
        }
        break;

      case DELETE_DATA:
        if (value == null) {
          unsetDeleteData();
        } else {
          setDeleteData((java.lang.Boolean)value);
        }
        break;

      case CASCADE:
        if (value == null) {
          unsetCascade();
        } else {
          setCascade((java.lang.Boolean)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case NAME:
        return getName();

      case DELETE_DATA:
        return isDeleteData();

      case CASCADE:
        return isCascade();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case NAME:
        return isSetName();
      case DELETE_DATA:
        return isSetDeleteData();
      case CASCADE:
        return isSetCascade();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_database_args)
        return this.equals((drop_database_args)that);
      return false;
    }

    public boolean equals(drop_database_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_name = true && this.isSetName();
      boolean that_present_name = true && that.isSetName();
      if (this_present_name || that_present_name) {
        if (!(this_present_name && that_present_name))
          return false;
        if (!this.name.equals(that.name))
          return false;
      }

      boolean this_present_deleteData = true;
      boolean that_present_deleteData = true;
      if (this_present_deleteData || that_present_deleteData) {
        if (!(this_present_deleteData && that_present_deleteData))
          return false;
        if (this.deleteData != that.deleteData)
          return false;
      }

      boolean this_present_cascade = true;
      boolean that_present_cascade = true;
      if (this_present_cascade || that_present_cascade) {
        if (!(this_present_cascade && that_present_cascade))
          return false;
        if (this.cascade != that.cascade)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetName()) ? 131071 : 524287);
      if (isSetName())
        hashCode = hashCode * 8191 + name.hashCode();

      hashCode = hashCode * 8191 + ((deleteData) ? 131071 : 524287);

      hashCode = hashCode * 8191 + ((cascade) ? 131071 : 524287);

      return hashCode;
    }

    @Override
    public int compareTo(drop_database_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetName(), other.isSetName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, other.name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetDeleteData(), other.isSetDeleteData());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDeleteData()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.deleteData, other.deleteData);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetCascade(), other.isSetCascade());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetCascade()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.cascade, other.cascade);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_database_args(");
      boolean first = true;

      sb.append("name:");
      if (this.name == null) {
        sb.append("null");
      } else {
        sb.append(this.name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("deleteData:");
      sb.append(this.deleteData);
      first = false;
      if (!first) sb.append(", ");
      sb.append("cascade:");
      sb.append(this.cascade);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_database_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_database_argsStandardScheme getScheme() {
        return new drop_database_argsStandardScheme();
      }
    }

    private static class drop_database_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_database_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_database_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.name = iprot.readString();
                struct.setNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // DELETE_DATA
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.deleteData = iprot.readBool();
                struct.setDeleteDataIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // CASCADE
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.cascade = iprot.readBool();
                struct.setCascadeIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_database_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.name != null) {
          oprot.writeFieldBegin(NAME_FIELD_DESC);
          oprot.writeString(struct.name);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(DELETE_DATA_FIELD_DESC);
        oprot.writeBool(struct.deleteData);
        oprot.writeFieldEnd();
        oprot.writeFieldBegin(CASCADE_FIELD_DESC);
        oprot.writeBool(struct.cascade);
        oprot.writeFieldEnd();
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_database_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_database_argsTupleScheme getScheme() {
        return new drop_database_argsTupleScheme();
      }
    }

    private static class drop_database_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_database_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_database_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetName()) {
          optionals.set(0);
        }
        if (struct.isSetDeleteData()) {
          optionals.set(1);
        }
        if (struct.isSetCascade()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetName()) {
          oprot.writeString(struct.name);
        }
        if (struct.isSetDeleteData()) {
          oprot.writeBool(struct.deleteData);
        }
        if (struct.isSetCascade()) {
          oprot.writeBool(struct.cascade);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_database_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.name = iprot.readString();
          struct.setNameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.deleteData = iprot.readBool();
          struct.setDeleteDataIsSet(true);
        }
        if (incoming.get(2)) {
          struct.cascade = iprot.readBool();
          struct.setCascadeIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_database_result implements org.apache.thrift.TBase<drop_database_result, drop_database_result._Fields>, java.io.Serializable, Cloneable, Comparable<drop_database_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_database_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_database_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_database_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable InvalidOperationException o2; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidOperationException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_database_result.class, metaDataMap);
    }

    public drop_database_result() {
    }

    public drop_database_result(
      NoSuchObjectException o1,
      InvalidOperationException o2,
      MetaException o3)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_database_result(drop_database_result other) {
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new InvalidOperationException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
    }

    public drop_database_result deepCopy() {
      return new drop_database_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidOperationException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable InvalidOperationException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((InvalidOperationException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_database_result)
        return this.equals((drop_database_result)that);
      return false;
    }

    public boolean equals(drop_database_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(drop_database_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_database_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_database_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_database_resultStandardScheme getScheme() {
        return new drop_database_resultStandardScheme();
      }
    }

    private static class drop_database_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_database_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_database_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new InvalidOperationException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_database_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_database_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_database_resultTupleScheme getScheme() {
        return new drop_database_resultTupleScheme();
      }
    }

    private static class drop_database_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_database_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_database_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        if (struct.isSetO3()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_database_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new InvalidOperationException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_databases_args implements org.apache.thrift.TBase<get_databases_args, get_databases_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_databases_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_databases_args");

    private static final org.apache.thrift.protocol.TField PATTERN_FIELD_DESC = new org.apache.thrift.protocol.TField("pattern", org.apache.thrift.protocol.TType.STRING, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_databases_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_databases_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String pattern; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      PATTERN((short)1, "pattern");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // PATTERN
            return PATTERN;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.PATTERN, new org.apache.thrift.meta_data.FieldMetaData("pattern", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_databases_args.class, metaDataMap);
    }

    public get_databases_args() {
    }

    public get_databases_args(
      java.lang.String pattern)
    {
      this();
      this.pattern = pattern;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_databases_args(get_databases_args other) {
      if (other.isSetPattern()) {
        this.pattern = other.pattern;
      }
    }

    public get_databases_args deepCopy() {
      return new get_databases_args(this);
    }

    @Override
    public void clear() {
      this.pattern = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getPattern() {
      return this.pattern;
    }

    public void setPattern(@org.apache.thrift.annotation.Nullable java.lang.String pattern) {
      this.pattern = pattern;
    }

    public void unsetPattern() {
      this.pattern = null;
    }

    /** Returns true if field pattern is set (has been assigned a value) and false otherwise */
    public boolean isSetPattern() {
      return this.pattern != null;
    }

    public void setPatternIsSet(boolean value) {
      if (!value) {
        this.pattern = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case PATTERN:
        if (value == null) {
          unsetPattern();
        } else {
          setPattern((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case PATTERN:
        return getPattern();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case PATTERN:
        return isSetPattern();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_databases_args)
        return this.equals((get_databases_args)that);
      return false;
    }

    public boolean equals(get_databases_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_pattern = true && this.isSetPattern();
      boolean that_present_pattern = true && that.isSetPattern();
      if (this_present_pattern || that_present_pattern) {
        if (!(this_present_pattern && that_present_pattern))
          return false;
        if (!this.pattern.equals(that.pattern))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetPattern()) ? 131071 : 524287);
      if (isSetPattern())
        hashCode = hashCode * 8191 + pattern.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_databases_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetPattern(), other.isSetPattern());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPattern()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.pattern, other.pattern);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_databases_args(");
      boolean first = true;

      sb.append("pattern:");
      if (this.pattern == null) {
        sb.append("null");
      } else {
        sb.append(this.pattern);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_databases_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_databases_argsStandardScheme getScheme() {
        return new get_databases_argsStandardScheme();
      }
    }

    private static class get_databases_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_databases_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_databases_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // PATTERN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.pattern = iprot.readString();
                struct.setPatternIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_databases_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.pattern != null) {
          oprot.writeFieldBegin(PATTERN_FIELD_DESC);
          oprot.writeString(struct.pattern);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_databases_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_databases_argsTupleScheme getScheme() {
        return new get_databases_argsTupleScheme();
      }
    }

    private static class get_databases_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_databases_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_databases_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetPattern()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetPattern()) {
          oprot.writeString(struct.pattern);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_databases_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.pattern = iprot.readString();
          struct.setPatternIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_databases_result implements org.apache.thrift.TBase<get_databases_result, get_databases_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_databases_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_databases_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_databases_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_databases_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_databases_result.class, metaDataMap);
    }

    public get_databases_result() {
    }

    public get_databases_result(
      java.util.List<java.lang.String> success,
      MetaException o1)
    {
      this();
      this.success = success;
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_databases_result(get_databases_result other) {
      if (other.isSetSuccess()) {
        java.util.List<java.lang.String> __this__success = new java.util.ArrayList<java.lang.String>(other.success);
        this.success = __this__success;
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public get_databases_result deepCopy() {
      return new get_databases_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(java.lang.String elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<java.lang.String>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<java.lang.String>)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_databases_result)
        return this.equals((get_databases_result)that);
      return false;
    }

    public boolean equals(get_databases_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_databases_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_databases_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_databases_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_databases_resultStandardScheme getScheme() {
        return new get_databases_resultStandardScheme();
      }
    }

    private static class get_databases_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_databases_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_databases_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list920 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<java.lang.String>(_list920.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem921;
                  for (int _i922 = 0; _i922 < _list920.size; ++_i922)
                  {
                    _elem921 = iprot.readString();
                    struct.success.add(_elem921);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_databases_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.success.size()));
            for (java.lang.String _iter923 : struct.success)
            {
              oprot.writeString(_iter923);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_databases_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_databases_resultTupleScheme getScheme() {
        return new get_databases_resultTupleScheme();
      }
    }

    private static class get_databases_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_databases_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_databases_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (java.lang.String _iter924 : struct.success)
            {
              oprot.writeString(_iter924);
            }
          }
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_databases_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list925 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.success = new java.util.ArrayList<java.lang.String>(_list925.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem926;
            for (int _i927 = 0; _i927 < _list925.size; ++_i927)
            {
              _elem926 = iprot.readString();
              struct.success.add(_elem926);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_all_databases_args implements org.apache.thrift.TBase<get_all_databases_args, get_all_databases_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_all_databases_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_all_databases_args");


    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_all_databases_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_all_databases_argsTupleSchemeFactory();


    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
;

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_all_databases_args.class, metaDataMap);
    }

    public get_all_databases_args() {
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_all_databases_args(get_all_databases_args other) {
    }

    public get_all_databases_args deepCopy() {
      return new get_all_databases_args(this);
    }

    @Override
    public void clear() {
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_all_databases_args)
        return this.equals((get_all_databases_args)that);
      return false;
    }

    public boolean equals(get_all_databases_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      return hashCode;
    }

    @Override
    public int compareTo(get_all_databases_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_all_databases_args(");
      boolean first = true;

      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_all_databases_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_all_databases_argsStandardScheme getScheme() {
        return new get_all_databases_argsStandardScheme();
      }
    }

    private static class get_all_databases_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_all_databases_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_all_databases_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_all_databases_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_all_databases_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_all_databases_argsTupleScheme getScheme() {
        return new get_all_databases_argsTupleScheme();
      }
    }

    private static class get_all_databases_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_all_databases_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_all_databases_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_all_databases_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_all_databases_result implements org.apache.thrift.TBase<get_all_databases_result, get_all_databases_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_all_databases_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_all_databases_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_all_databases_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_all_databases_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_all_databases_result.class, metaDataMap);
    }

    public get_all_databases_result() {
    }

    public get_all_databases_result(
      java.util.List<java.lang.String> success,
      MetaException o1)
    {
      this();
      this.success = success;
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_all_databases_result(get_all_databases_result other) {
      if (other.isSetSuccess()) {
        java.util.List<java.lang.String> __this__success = new java.util.ArrayList<java.lang.String>(other.success);
        this.success = __this__success;
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public get_all_databases_result deepCopy() {
      return new get_all_databases_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(java.lang.String elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<java.lang.String>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<java.lang.String>)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_all_databases_result)
        return this.equals((get_all_databases_result)that);
      return false;
    }

    public boolean equals(get_all_databases_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_all_databases_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_all_databases_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_all_databases_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_all_databases_resultStandardScheme getScheme() {
        return new get_all_databases_resultStandardScheme();
      }
    }

    private static class get_all_databases_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_all_databases_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_all_databases_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list928 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<java.lang.String>(_list928.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem929;
                  for (int _i930 = 0; _i930 < _list928.size; ++_i930)
                  {
                    _elem929 = iprot.readString();
                    struct.success.add(_elem929);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_all_databases_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.success.size()));
            for (java.lang.String _iter931 : struct.success)
            {
              oprot.writeString(_iter931);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_all_databases_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_all_databases_resultTupleScheme getScheme() {
        return new get_all_databases_resultTupleScheme();
      }
    }

    private static class get_all_databases_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_all_databases_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_all_databases_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (java.lang.String _iter932 : struct.success)
            {
              oprot.writeString(_iter932);
            }
          }
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_all_databases_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list933 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.success = new java.util.ArrayList<java.lang.String>(_list933.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem934;
            for (int _i935 = 0; _i935 < _list933.size; ++_i935)
            {
              _elem934 = iprot.readString();
              struct.success.add(_elem934);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_database_args implements org.apache.thrift.TBase<alter_database_args, alter_database_args._Fields>, java.io.Serializable, Cloneable, Comparable<alter_database_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("alter_database_args");

    private static final org.apache.thrift.protocol.TField DBNAME_FIELD_DESC = new org.apache.thrift.protocol.TField("dbname", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField DB_FIELD_DESC = new org.apache.thrift.protocol.TField("db", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new alter_database_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new alter_database_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String dbname; // required
    private @org.apache.thrift.annotation.Nullable Database db; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DBNAME((short)1, "dbname"),
      DB((short)2, "db");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DBNAME
            return DBNAME;
          case 2: // DB
            return DB;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DBNAME, new org.apache.thrift.meta_data.FieldMetaData("dbname", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.DB, new org.apache.thrift.meta_data.FieldMetaData("db", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Database.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(alter_database_args.class, metaDataMap);
    }

    public alter_database_args() {
    }

    public alter_database_args(
      java.lang.String dbname,
      Database db)
    {
      this();
      this.dbname = dbname;
      this.db = db;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public alter_database_args(alter_database_args other) {
      if (other.isSetDbname()) {
        this.dbname = other.dbname;
      }
      if (other.isSetDb()) {
        this.db = new Database(other.db);
      }
    }

    public alter_database_args deepCopy() {
      return new alter_database_args(this);
    }

    @Override
    public void clear() {
      this.dbname = null;
      this.db = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDbname() {
      return this.dbname;
    }

    public void setDbname(@org.apache.thrift.annotation.Nullable java.lang.String dbname) {
      this.dbname = dbname;
    }

    public void unsetDbname() {
      this.dbname = null;
    }

    /** Returns true if field dbname is set (has been assigned a value) and false otherwise */
    public boolean isSetDbname() {
      return this.dbname != null;
    }

    public void setDbnameIsSet(boolean value) {
      if (!value) {
        this.dbname = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public Database getDb() {
      return this.db;
    }

    public void setDb(@org.apache.thrift.annotation.Nullable Database db) {
      this.db = db;
    }

    public void unsetDb() {
      this.db = null;
    }

    /** Returns true if field db is set (has been assigned a value) and false otherwise */
    public boolean isSetDb() {
      return this.db != null;
    }

    public void setDbIsSet(boolean value) {
      if (!value) {
        this.db = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DBNAME:
        if (value == null) {
          unsetDbname();
        } else {
          setDbname((java.lang.String)value);
        }
        break;

      case DB:
        if (value == null) {
          unsetDb();
        } else {
          setDb((Database)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DBNAME:
        return getDbname();

      case DB:
        return getDb();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DBNAME:
        return isSetDbname();
      case DB:
        return isSetDb();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof alter_database_args)
        return this.equals((alter_database_args)that);
      return false;
    }

    public boolean equals(alter_database_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_dbname = true && this.isSetDbname();
      boolean that_present_dbname = true && that.isSetDbname();
      if (this_present_dbname || that_present_dbname) {
        if (!(this_present_dbname && that_present_dbname))
          return false;
        if (!this.dbname.equals(that.dbname))
          return false;
      }

      boolean this_present_db = true && this.isSetDb();
      boolean that_present_db = true && that.isSetDb();
      if (this_present_db || that_present_db) {
        if (!(this_present_db && that_present_db))
          return false;
        if (!this.db.equals(that.db))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDbname()) ? 131071 : 524287);
      if (isSetDbname())
        hashCode = hashCode * 8191 + dbname.hashCode();

      hashCode = hashCode * 8191 + ((isSetDb()) ? 131071 : 524287);
      if (isSetDb())
        hashCode = hashCode * 8191 + db.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(alter_database_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDbname(), other.isSetDbname());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDbname()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dbname, other.dbname);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetDb(), other.isSetDb());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db, other.db);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("alter_database_args(");
      boolean first = true;

      sb.append("dbname:");
      if (this.dbname == null) {
        sb.append("null");
      } else {
        sb.append(this.dbname);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("db:");
      if (this.db == null) {
        sb.append("null");
      } else {
        sb.append(this.db);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (db != null) {
        db.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class alter_database_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_database_argsStandardScheme getScheme() {
        return new alter_database_argsStandardScheme();
      }
    }

    private static class alter_database_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<alter_database_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, alter_database_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DBNAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.dbname = iprot.readString();
                struct.setDbnameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // DB
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.db = new Database();
                struct.db.read(iprot);
                struct.setDbIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, alter_database_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.dbname != null) {
          oprot.writeFieldBegin(DBNAME_FIELD_DESC);
          oprot.writeString(struct.dbname);
          oprot.writeFieldEnd();
        }
        if (struct.db != null) {
          oprot.writeFieldBegin(DB_FIELD_DESC);
          struct.db.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class alter_database_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_database_argsTupleScheme getScheme() {
        return new alter_database_argsTupleScheme();
      }
    }

    private static class alter_database_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<alter_database_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, alter_database_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDbname()) {
          optionals.set(0);
        }
        if (struct.isSetDb()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetDbname()) {
          oprot.writeString(struct.dbname);
        }
        if (struct.isSetDb()) {
          struct.db.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, alter_database_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.dbname = iprot.readString();
          struct.setDbnameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.db = new Database();
          struct.db.read(iprot);
          struct.setDbIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_database_result implements org.apache.thrift.TBase<alter_database_result, alter_database_result._Fields>, java.io.Serializable, Cloneable, Comparable<alter_database_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("alter_database_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new alter_database_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new alter_database_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(alter_database_result.class, metaDataMap);
    }

    public alter_database_result() {
    }

    public alter_database_result(
      MetaException o1,
      NoSuchObjectException o2)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public alter_database_result(alter_database_result other) {
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchObjectException(other.o2);
      }
    }

    public alter_database_result deepCopy() {
      return new alter_database_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchObjectException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof alter_database_result)
        return this.equals((alter_database_result)that);
      return false;
    }

    public boolean equals(alter_database_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(alter_database_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("alter_database_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class alter_database_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_database_resultStandardScheme getScheme() {
        return new alter_database_resultStandardScheme();
      }
    }

    private static class alter_database_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<alter_database_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, alter_database_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, alter_database_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class alter_database_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_database_resultTupleScheme getScheme() {
        return new alter_database_resultTupleScheme();
      }
    }

    private static class alter_database_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<alter_database_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, alter_database_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, alter_database_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new NoSuchObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_type_args implements org.apache.thrift.TBase<get_type_args, get_type_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_type_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_type_args");

    private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_type_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_type_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String name; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      NAME((short)1, "name");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // NAME
            return NAME;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_type_args.class, metaDataMap);
    }

    public get_type_args() {
    }

    public get_type_args(
      java.lang.String name)
    {
      this();
      this.name = name;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_type_args(get_type_args other) {
      if (other.isSetName()) {
        this.name = other.name;
      }
    }

    public get_type_args deepCopy() {
      return new get_type_args(this);
    }

    @Override
    public void clear() {
      this.name = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getName() {
      return this.name;
    }

    public void setName(@org.apache.thrift.annotation.Nullable java.lang.String name) {
      this.name = name;
    }

    public void unsetName() {
      this.name = null;
    }

    /** Returns true if field name is set (has been assigned a value) and false otherwise */
    public boolean isSetName() {
      return this.name != null;
    }

    public void setNameIsSet(boolean value) {
      if (!value) {
        this.name = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case NAME:
        if (value == null) {
          unsetName();
        } else {
          setName((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case NAME:
        return getName();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case NAME:
        return isSetName();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_type_args)
        return this.equals((get_type_args)that);
      return false;
    }

    public boolean equals(get_type_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_name = true && this.isSetName();
      boolean that_present_name = true && that.isSetName();
      if (this_present_name || that_present_name) {
        if (!(this_present_name && that_present_name))
          return false;
        if (!this.name.equals(that.name))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetName()) ? 131071 : 524287);
      if (isSetName())
        hashCode = hashCode * 8191 + name.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_type_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetName(), other.isSetName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, other.name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_type_args(");
      boolean first = true;

      sb.append("name:");
      if (this.name == null) {
        sb.append("null");
      } else {
        sb.append(this.name);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_type_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_type_argsStandardScheme getScheme() {
        return new get_type_argsStandardScheme();
      }
    }

    private static class get_type_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_type_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_type_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.name = iprot.readString();
                struct.setNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_type_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.name != null) {
          oprot.writeFieldBegin(NAME_FIELD_DESC);
          oprot.writeString(struct.name);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_type_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_type_argsTupleScheme getScheme() {
        return new get_type_argsTupleScheme();
      }
    }

    private static class get_type_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_type_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_type_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetName()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetName()) {
          oprot.writeString(struct.name);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_type_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.name = iprot.readString();
          struct.setNameIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_type_result implements org.apache.thrift.TBase<get_type_result, get_type_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_type_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_type_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_type_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_type_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable Type success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Type.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_type_result.class, metaDataMap);
    }

    public get_type_result() {
    }

    public get_type_result(
      Type success,
      MetaException o1,
      NoSuchObjectException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_type_result(get_type_result other) {
      if (other.isSetSuccess()) {
        this.success = new Type(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchObjectException(other.o2);
      }
    }

    public get_type_result deepCopy() {
      return new get_type_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public Type getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable Type success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Type)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchObjectException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_type_result)
        return this.equals((get_type_result)that);
      return false;
    }

    public boolean equals(get_type_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_type_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_type_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_type_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_type_resultStandardScheme getScheme() {
        return new get_type_resultStandardScheme();
      }
    }

    private static class get_type_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_type_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_type_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new Type();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_type_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_type_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_type_resultTupleScheme getScheme() {
        return new get_type_resultTupleScheme();
      }
    }

    private static class get_type_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_type_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_type_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_type_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = new Type();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new NoSuchObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_type_args implements org.apache.thrift.TBase<create_type_args, create_type_args._Fields>, java.io.Serializable, Cloneable, Comparable<create_type_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("create_type_args");

    private static final org.apache.thrift.protocol.TField TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("type", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new create_type_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new create_type_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable Type type; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      TYPE((short)1, "type");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // TYPE
            return TYPE;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.TYPE, new org.apache.thrift.meta_data.FieldMetaData("type", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Type.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(create_type_args.class, metaDataMap);
    }

    public create_type_args() {
    }

    public create_type_args(
      Type type)
    {
      this();
      this.type = type;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public create_type_args(create_type_args other) {
      if (other.isSetType()) {
        this.type = new Type(other.type);
      }
    }

    public create_type_args deepCopy() {
      return new create_type_args(this);
    }

    @Override
    public void clear() {
      this.type = null;
    }

    @org.apache.thrift.annotation.Nullable
    public Type getType() {
      return this.type;
    }

    public void setType(@org.apache.thrift.annotation.Nullable Type type) {
      this.type = type;
    }

    public void unsetType() {
      this.type = null;
    }

    /** Returns true if field type is set (has been assigned a value) and false otherwise */
    public boolean isSetType() {
      return this.type != null;
    }

    public void setTypeIsSet(boolean value) {
      if (!value) {
        this.type = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case TYPE:
        if (value == null) {
          unsetType();
        } else {
          setType((Type)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case TYPE:
        return getType();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case TYPE:
        return isSetType();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof create_type_args)
        return this.equals((create_type_args)that);
      return false;
    }

    public boolean equals(create_type_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_type = true && this.isSetType();
      boolean that_present_type = true && that.isSetType();
      if (this_present_type || that_present_type) {
        if (!(this_present_type && that_present_type))
          return false;
        if (!this.type.equals(that.type))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetType()) ? 131071 : 524287);
      if (isSetType())
        hashCode = hashCode * 8191 + type.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(create_type_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetType(), other.isSetType());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetType()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.type, other.type);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("create_type_args(");
      boolean first = true;

      sb.append("type:");
      if (this.type == null) {
        sb.append("null");
      } else {
        sb.append(this.type);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (type != null) {
        type.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class create_type_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_type_argsStandardScheme getScheme() {
        return new create_type_argsStandardScheme();
      }
    }

    private static class create_type_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<create_type_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, create_type_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // TYPE
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.type = new Type();
                struct.type.read(iprot);
                struct.setTypeIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, create_type_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.type != null) {
          oprot.writeFieldBegin(TYPE_FIELD_DESC);
          struct.type.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class create_type_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_type_argsTupleScheme getScheme() {
        return new create_type_argsTupleScheme();
      }
    }

    private static class create_type_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<create_type_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, create_type_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetType()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetType()) {
          struct.type.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, create_type_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.type = new Type();
          struct.type.read(iprot);
          struct.setTypeIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_type_result implements org.apache.thrift.TBase<create_type_result, create_type_result._Fields>, java.io.Serializable, Cloneable, Comparable<create_type_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("create_type_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new create_type_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new create_type_resultTupleSchemeFactory();

    private boolean success; // required
    private @org.apache.thrift.annotation.Nullable AlreadyExistsException o1; // required
    private @org.apache.thrift.annotation.Nullable InvalidObjectException o2; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AlreadyExistsException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidObjectException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(create_type_result.class, metaDataMap);
    }

    public create_type_result() {
    }

    public create_type_result(
      boolean success,
      AlreadyExistsException o1,
      InvalidObjectException o2,
      MetaException o3)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public create_type_result(create_type_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
      if (other.isSetO1()) {
        this.o1 = new AlreadyExistsException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new InvalidObjectException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
    }

    public create_type_result deepCopy() {
      return new create_type_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = false;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    public boolean isSuccess() {
      return this.success;
    }

    public void setSuccess(boolean success) {
      this.success = success;
      setSuccessIsSet(true);
    }

    public void unsetSuccess() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public AlreadyExistsException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable AlreadyExistsException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable InvalidObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.lang.Boolean)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((AlreadyExistsException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((InvalidObjectException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return isSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof create_type_result)
        return this.equals((create_type_result)that);
      return false;
    }

    public boolean equals(create_type_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(create_type_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("create_type_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class create_type_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_type_resultStandardScheme getScheme() {
        return new create_type_resultStandardScheme();
      }
    }

    private static class create_type_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<create_type_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, create_type_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.success = iprot.readBool();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new AlreadyExistsException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new InvalidObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, create_type_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeBool(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class create_type_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_type_resultTupleScheme getScheme() {
        return new create_type_resultTupleScheme();
      }
    }

    private static class create_type_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<create_type_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, create_type_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          oprot.writeBool(struct.success);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, create_type_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = iprot.readBool();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new AlreadyExistsException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new InvalidObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_type_args implements org.apache.thrift.TBase<drop_type_args, drop_type_args._Fields>, java.io.Serializable, Cloneable, Comparable<drop_type_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_type_args");

    private static final org.apache.thrift.protocol.TField TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("type", org.apache.thrift.protocol.TType.STRING, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_type_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_type_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String type; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      TYPE((short)1, "type");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // TYPE
            return TYPE;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.TYPE, new org.apache.thrift.meta_data.FieldMetaData("type", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_type_args.class, metaDataMap);
    }

    public drop_type_args() {
    }

    public drop_type_args(
      java.lang.String type)
    {
      this();
      this.type = type;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_type_args(drop_type_args other) {
      if (other.isSetType()) {
        this.type = other.type;
      }
    }

    public drop_type_args deepCopy() {
      return new drop_type_args(this);
    }

    @Override
    public void clear() {
      this.type = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getType() {
      return this.type;
    }

    public void setType(@org.apache.thrift.annotation.Nullable java.lang.String type) {
      this.type = type;
    }

    public void unsetType() {
      this.type = null;
    }

    /** Returns true if field type is set (has been assigned a value) and false otherwise */
    public boolean isSetType() {
      return this.type != null;
    }

    public void setTypeIsSet(boolean value) {
      if (!value) {
        this.type = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case TYPE:
        if (value == null) {
          unsetType();
        } else {
          setType((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case TYPE:
        return getType();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case TYPE:
        return isSetType();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_type_args)
        return this.equals((drop_type_args)that);
      return false;
    }

    public boolean equals(drop_type_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_type = true && this.isSetType();
      boolean that_present_type = true && that.isSetType();
      if (this_present_type || that_present_type) {
        if (!(this_present_type && that_present_type))
          return false;
        if (!this.type.equals(that.type))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetType()) ? 131071 : 524287);
      if (isSetType())
        hashCode = hashCode * 8191 + type.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(drop_type_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetType(), other.isSetType());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetType()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.type, other.type);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_type_args(");
      boolean first = true;

      sb.append("type:");
      if (this.type == null) {
        sb.append("null");
      } else {
        sb.append(this.type);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_type_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_type_argsStandardScheme getScheme() {
        return new drop_type_argsStandardScheme();
      }
    }

    private static class drop_type_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_type_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_type_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // TYPE
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.type = iprot.readString();
                struct.setTypeIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_type_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.type != null) {
          oprot.writeFieldBegin(TYPE_FIELD_DESC);
          oprot.writeString(struct.type);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_type_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_type_argsTupleScheme getScheme() {
        return new drop_type_argsTupleScheme();
      }
    }

    private static class drop_type_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_type_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_type_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetType()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetType()) {
          oprot.writeString(struct.type);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_type_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.type = iprot.readString();
          struct.setTypeIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_type_result implements org.apache.thrift.TBase<drop_type_result, drop_type_result._Fields>, java.io.Serializable, Cloneable, Comparable<drop_type_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_type_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_type_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_type_resultTupleSchemeFactory();

    private boolean success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_type_result.class, metaDataMap);
    }

    public drop_type_result() {
    }

    public drop_type_result(
      boolean success,
      MetaException o1,
      NoSuchObjectException o2)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_type_result(drop_type_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchObjectException(other.o2);
      }
    }

    public drop_type_result deepCopy() {
      return new drop_type_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = false;
      this.o1 = null;
      this.o2 = null;
    }

    public boolean isSuccess() {
      return this.success;
    }

    public void setSuccess(boolean success) {
      this.success = success;
      setSuccessIsSet(true);
    }

    public void unsetSuccess() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.lang.Boolean)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchObjectException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return isSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_type_result)
        return this.equals((drop_type_result)that);
      return false;
    }

    public boolean equals(drop_type_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(drop_type_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_type_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_type_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_type_resultStandardScheme getScheme() {
        return new drop_type_resultStandardScheme();
      }
    }

    private static class drop_type_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_type_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_type_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.success = iprot.readBool();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_type_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeBool(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_type_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_type_resultTupleScheme getScheme() {
        return new drop_type_resultTupleScheme();
      }
    }

    private static class drop_type_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_type_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_type_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          oprot.writeBool(struct.success);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_type_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = iprot.readBool();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new NoSuchObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_type_all_args implements org.apache.thrift.TBase<get_type_all_args, get_type_all_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_type_all_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_type_all_args");

    private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_type_all_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_type_all_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String name; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      NAME((short)1, "name");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // NAME
            return NAME;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_type_all_args.class, metaDataMap);
    }

    public get_type_all_args() {
    }

    public get_type_all_args(
      java.lang.String name)
    {
      this();
      this.name = name;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_type_all_args(get_type_all_args other) {
      if (other.isSetName()) {
        this.name = other.name;
      }
    }

    public get_type_all_args deepCopy() {
      return new get_type_all_args(this);
    }

    @Override
    public void clear() {
      this.name = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getName() {
      return this.name;
    }

    public void setName(@org.apache.thrift.annotation.Nullable java.lang.String name) {
      this.name = name;
    }

    public void unsetName() {
      this.name = null;
    }

    /** Returns true if field name is set (has been assigned a value) and false otherwise */
    public boolean isSetName() {
      return this.name != null;
    }

    public void setNameIsSet(boolean value) {
      if (!value) {
        this.name = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case NAME:
        if (value == null) {
          unsetName();
        } else {
          setName((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case NAME:
        return getName();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case NAME:
        return isSetName();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_type_all_args)
        return this.equals((get_type_all_args)that);
      return false;
    }

    public boolean equals(get_type_all_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_name = true && this.isSetName();
      boolean that_present_name = true && that.isSetName();
      if (this_present_name || that_present_name) {
        if (!(this_present_name && that_present_name))
          return false;
        if (!this.name.equals(that.name))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetName()) ? 131071 : 524287);
      if (isSetName())
        hashCode = hashCode * 8191 + name.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_type_all_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetName(), other.isSetName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, other.name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_type_all_args(");
      boolean first = true;

      sb.append("name:");
      if (this.name == null) {
        sb.append("null");
      } else {
        sb.append(this.name);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_type_all_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_type_all_argsStandardScheme getScheme() {
        return new get_type_all_argsStandardScheme();
      }
    }

    private static class get_type_all_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_type_all_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_type_all_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.name = iprot.readString();
                struct.setNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_type_all_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.name != null) {
          oprot.writeFieldBegin(NAME_FIELD_DESC);
          oprot.writeString(struct.name);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_type_all_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_type_all_argsTupleScheme getScheme() {
        return new get_type_all_argsTupleScheme();
      }
    }

    private static class get_type_all_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_type_all_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_type_all_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetName()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetName()) {
          oprot.writeString(struct.name);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_type_all_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.name = iprot.readString();
          struct.setNameIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_type_all_result implements org.apache.thrift.TBase<get_type_all_result, get_type_all_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_type_all_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_type_all_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.MAP, (short)0);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_type_all_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_type_all_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,Type> success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O2((short)1, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Type.class))));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_type_all_result.class, metaDataMap);
    }

    public get_type_all_result() {
    }

    public get_type_all_result(
      java.util.Map<java.lang.String,Type> success,
      MetaException o2)
    {
      this();
      this.success = success;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_type_all_result(get_type_all_result other) {
      if (other.isSetSuccess()) {
        java.util.Map<java.lang.String,Type> __this__success = new java.util.HashMap<java.lang.String,Type>(other.success.size());
        for (java.util.Map.Entry<java.lang.String, Type> other_element : other.success.entrySet()) {

          java.lang.String other_element_key = other_element.getKey();
          Type other_element_value = other_element.getValue();

          java.lang.String __this__success_copy_key = other_element_key;

          Type __this__success_copy_value = new Type(other_element_value);

          __this__success.put(__this__success_copy_key, __this__success_copy_value);
        }
        this.success = __this__success;
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public get_type_all_result deepCopy() {
      return new get_type_all_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o2 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    public void putToSuccess(java.lang.String key, Type val) {
      if (this.success == null) {
        this.success = new java.util.HashMap<java.lang.String,Type>();
      }
      this.success.put(key, val);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Map<java.lang.String,Type> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,Type> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.Map<java.lang.String,Type>)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_type_all_result)
        return this.equals((get_type_all_result)that);
      return false;
    }

    public boolean equals(get_type_all_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_type_all_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_type_all_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_type_all_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_type_all_resultStandardScheme getScheme() {
        return new get_type_all_resultStandardScheme();
      }
    }

    private static class get_type_all_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_type_all_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_type_all_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
                {
                  org.apache.thrift.protocol.TMap _map936 = iprot.readMapBegin();
                  struct.success = new java.util.HashMap<java.lang.String,Type>(2*_map936.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _key937;
                  @org.apache.thrift.annotation.Nullable Type _val938;
                  for (int _i939 = 0; _i939 < _map936.size; ++_i939)
                  {
                    _key937 = iprot.readString();
                    _val938 = new Type();
                    _val938.read(iprot);
                    struct.success.put(_key937, _val938);
                  }
                  iprot.readMapEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_type_all_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
            for (java.util.Map.Entry<java.lang.String, Type> _iter940 : struct.success.entrySet())
            {
              oprot.writeString(_iter940.getKey());
              _iter940.getValue().write(oprot);
            }
            oprot.writeMapEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_type_all_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_type_all_resultTupleScheme getScheme() {
        return new get_type_all_resultTupleScheme();
      }
    }

    private static class get_type_all_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_type_all_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_type_all_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (java.util.Map.Entry<java.lang.String, Type> _iter941 : struct.success.entrySet())
            {
              oprot.writeString(_iter941.getKey());
              _iter941.getValue().write(oprot);
            }
          }
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_type_all_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TMap _map942 = iprot.readMapBegin(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRUCT); 
            struct.success = new java.util.HashMap<java.lang.String,Type>(2*_map942.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _key943;
            @org.apache.thrift.annotation.Nullable Type _val944;
            for (int _i945 = 0; _i945 < _map942.size; ++_i945)
            {
              _key943 = iprot.readString();
              _val944 = new Type();
              _val944.read(iprot);
              struct.success.put(_key943, _val944);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_fields_args implements org.apache.thrift.TBase<get_fields_args, get_fields_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_fields_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_fields_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("table_name", org.apache.thrift.protocol.TType.STRING, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_fields_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_fields_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String table_name; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TABLE_NAME((short)2, "table_name");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("table_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_fields_args.class, metaDataMap);
    }

    public get_fields_args() {
    }

    public get_fields_args(
      java.lang.String db_name,
      java.lang.String table_name)
    {
      this();
      this.db_name = db_name;
      this.table_name = table_name;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_fields_args(get_fields_args other) {
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTable_name()) {
        this.table_name = other.table_name;
      }
    }

    public get_fields_args deepCopy() {
      return new get_fields_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.table_name = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTable_name() {
      return this.table_name;
    }

    public void setTable_name(@org.apache.thrift.annotation.Nullable java.lang.String table_name) {
      this.table_name = table_name;
    }

    public void unsetTable_name() {
      this.table_name = null;
    }

    /** Returns true if field table_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTable_name() {
      return this.table_name != null;
    }

    public void setTable_nameIsSet(boolean value) {
      if (!value) {
        this.table_name = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTable_name();
        } else {
          setTable_name((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TABLE_NAME:
        return getTable_name();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TABLE_NAME:
        return isSetTable_name();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_fields_args)
        return this.equals((get_fields_args)that);
      return false;
    }

    public boolean equals(get_fields_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_table_name = true && this.isSetTable_name();
      boolean that_present_table_name = true && that.isSetTable_name();
      if (this_present_table_name || that_present_table_name) {
        if (!(this_present_table_name && that_present_table_name))
          return false;
        if (!this.table_name.equals(that.table_name))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTable_name()) ? 131071 : 524287);
      if (isSetTable_name())
        hashCode = hashCode * 8191 + table_name.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_fields_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTable_name(), other.isSetTable_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTable_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.table_name, other.table_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_fields_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("table_name:");
      if (this.table_name == null) {
        sb.append("null");
      } else {
        sb.append(this.table_name);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_fields_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_fields_argsStandardScheme getScheme() {
        return new get_fields_argsStandardScheme();
      }
    }

    private static class get_fields_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_fields_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_fields_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.table_name = iprot.readString();
                struct.setTable_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_fields_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.table_name != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.table_name);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_fields_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_fields_argsTupleScheme getScheme() {
        return new get_fields_argsTupleScheme();
      }
    }

    private static class get_fields_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_fields_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_fields_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTable_name()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTable_name()) {
          oprot.writeString(struct.table_name);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_fields_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.table_name = iprot.readString();
          struct.setTable_nameIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_fields_result implements org.apache.thrift.TBase<get_fields_result, get_fields_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_fields_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_fields_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_fields_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_fields_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<FieldSchema> success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable UnknownTableException o2; // required
    private @org.apache.thrift.annotation.Nullable UnknownDBException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, FieldSchema.class))));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UnknownTableException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UnknownDBException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_fields_result.class, metaDataMap);
    }

    public get_fields_result() {
    }

    public get_fields_result(
      java.util.List<FieldSchema> success,
      MetaException o1,
      UnknownTableException o2,
      UnknownDBException o3)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_fields_result(get_fields_result other) {
      if (other.isSetSuccess()) {
        java.util.List<FieldSchema> __this__success = new java.util.ArrayList<FieldSchema>(other.success.size());
        for (FieldSchema other_element : other.success) {
          __this__success.add(new FieldSchema(other_element));
        }
        this.success = __this__success;
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new UnknownTableException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new UnknownDBException(other.o3);
      }
    }

    public get_fields_result deepCopy() {
      return new get_fields_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<FieldSchema> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(FieldSchema elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<FieldSchema>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<FieldSchema> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<FieldSchema> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public UnknownTableException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable UnknownTableException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public UnknownDBException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable UnknownDBException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<FieldSchema>)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((UnknownTableException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((UnknownDBException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_fields_result)
        return this.equals((get_fields_result)that);
      return false;
    }

    public boolean equals(get_fields_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_fields_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_fields_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_fields_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_fields_resultStandardScheme getScheme() {
        return new get_fields_resultStandardScheme();
      }
    }

    private static class get_fields_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_fields_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_fields_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list946 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<FieldSchema>(_list946.size);
                  @org.apache.thrift.annotation.Nullable FieldSchema _elem947;
                  for (int _i948 = 0; _i948 < _list946.size; ++_i948)
                  {
                    _elem947 = new FieldSchema();
                    _elem947.read(iprot);
                    struct.success.add(_elem947);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new UnknownTableException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new UnknownDBException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_fields_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
            for (FieldSchema _iter949 : struct.success)
            {
              _iter949.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_fields_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_fields_resultTupleScheme getScheme() {
        return new get_fields_resultTupleScheme();
      }
    }

    private static class get_fields_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_fields_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_fields_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (FieldSchema _iter950 : struct.success)
            {
              _iter950.write(oprot);
            }
          }
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_fields_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list951 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
            struct.success = new java.util.ArrayList<FieldSchema>(_list951.size);
            @org.apache.thrift.annotation.Nullable FieldSchema _elem952;
            for (int _i953 = 0; _i953 < _list951.size; ++_i953)
            {
              _elem952 = new FieldSchema();
              _elem952.read(iprot);
              struct.success.add(_elem952);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new UnknownTableException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new UnknownDBException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_fields_with_environment_context_args implements org.apache.thrift.TBase<get_fields_with_environment_context_args, get_fields_with_environment_context_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_fields_with_environment_context_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_fields_with_environment_context_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("table_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField ENVIRONMENT_CONTEXT_FIELD_DESC = new org.apache.thrift.protocol.TField("environment_context", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_fields_with_environment_context_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_fields_with_environment_context_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String table_name; // required
    private @org.apache.thrift.annotation.Nullable EnvironmentContext environment_context; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TABLE_NAME((short)2, "table_name"),
      ENVIRONMENT_CONTEXT((short)3, "environment_context");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // ENVIRONMENT_CONTEXT
            return ENVIRONMENT_CONTEXT;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("table_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.ENVIRONMENT_CONTEXT, new org.apache.thrift.meta_data.FieldMetaData("environment_context", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, EnvironmentContext.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_fields_with_environment_context_args.class, metaDataMap);
    }

    public get_fields_with_environment_context_args() {
    }

    public get_fields_with_environment_context_args(
      java.lang.String db_name,
      java.lang.String table_name,
      EnvironmentContext environment_context)
    {
      this();
      this.db_name = db_name;
      this.table_name = table_name;
      this.environment_context = environment_context;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_fields_with_environment_context_args(get_fields_with_environment_context_args other) {
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTable_name()) {
        this.table_name = other.table_name;
      }
      if (other.isSetEnvironment_context()) {
        this.environment_context = new EnvironmentContext(other.environment_context);
      }
    }

    public get_fields_with_environment_context_args deepCopy() {
      return new get_fields_with_environment_context_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.table_name = null;
      this.environment_context = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTable_name() {
      return this.table_name;
    }

    public void setTable_name(@org.apache.thrift.annotation.Nullable java.lang.String table_name) {
      this.table_name = table_name;
    }

    public void unsetTable_name() {
      this.table_name = null;
    }

    /** Returns true if field table_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTable_name() {
      return this.table_name != null;
    }

    public void setTable_nameIsSet(boolean value) {
      if (!value) {
        this.table_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public EnvironmentContext getEnvironment_context() {
      return this.environment_context;
    }

    public void setEnvironment_context(@org.apache.thrift.annotation.Nullable EnvironmentContext environment_context) {
      this.environment_context = environment_context;
    }

    public void unsetEnvironment_context() {
      this.environment_context = null;
    }

    /** Returns true if field environment_context is set (has been assigned a value) and false otherwise */
    public boolean isSetEnvironment_context() {
      return this.environment_context != null;
    }

    public void setEnvironment_contextIsSet(boolean value) {
      if (!value) {
        this.environment_context = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTable_name();
        } else {
          setTable_name((java.lang.String)value);
        }
        break;

      case ENVIRONMENT_CONTEXT:
        if (value == null) {
          unsetEnvironment_context();
        } else {
          setEnvironment_context((EnvironmentContext)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TABLE_NAME:
        return getTable_name();

      case ENVIRONMENT_CONTEXT:
        return getEnvironment_context();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TABLE_NAME:
        return isSetTable_name();
      case ENVIRONMENT_CONTEXT:
        return isSetEnvironment_context();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_fields_with_environment_context_args)
        return this.equals((get_fields_with_environment_context_args)that);
      return false;
    }

    public boolean equals(get_fields_with_environment_context_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_table_name = true && this.isSetTable_name();
      boolean that_present_table_name = true && that.isSetTable_name();
      if (this_present_table_name || that_present_table_name) {
        if (!(this_present_table_name && that_present_table_name))
          return false;
        if (!this.table_name.equals(that.table_name))
          return false;
      }

      boolean this_present_environment_context = true && this.isSetEnvironment_context();
      boolean that_present_environment_context = true && that.isSetEnvironment_context();
      if (this_present_environment_context || that_present_environment_context) {
        if (!(this_present_environment_context && that_present_environment_context))
          return false;
        if (!this.environment_context.equals(that.environment_context))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTable_name()) ? 131071 : 524287);
      if (isSetTable_name())
        hashCode = hashCode * 8191 + table_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetEnvironment_context()) ? 131071 : 524287);
      if (isSetEnvironment_context())
        hashCode = hashCode * 8191 + environment_context.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_fields_with_environment_context_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTable_name(), other.isSetTable_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTable_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.table_name, other.table_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetEnvironment_context(), other.isSetEnvironment_context());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEnvironment_context()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.environment_context, other.environment_context);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_fields_with_environment_context_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("table_name:");
      if (this.table_name == null) {
        sb.append("null");
      } else {
        sb.append(this.table_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("environment_context:");
      if (this.environment_context == null) {
        sb.append("null");
      } else {
        sb.append(this.environment_context);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (environment_context != null) {
        environment_context.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_fields_with_environment_context_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_fields_with_environment_context_argsStandardScheme getScheme() {
        return new get_fields_with_environment_context_argsStandardScheme();
      }
    }

    private static class get_fields_with_environment_context_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_fields_with_environment_context_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_fields_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.table_name = iprot.readString();
                struct.setTable_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // ENVIRONMENT_CONTEXT
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.environment_context = new EnvironmentContext();
                struct.environment_context.read(iprot);
                struct.setEnvironment_contextIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_fields_with_environment_context_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.table_name != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.table_name);
          oprot.writeFieldEnd();
        }
        if (struct.environment_context != null) {
          oprot.writeFieldBegin(ENVIRONMENT_CONTEXT_FIELD_DESC);
          struct.environment_context.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_fields_with_environment_context_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_fields_with_environment_context_argsTupleScheme getScheme() {
        return new get_fields_with_environment_context_argsTupleScheme();
      }
    }

    private static class get_fields_with_environment_context_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_fields_with_environment_context_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_fields_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTable_name()) {
          optionals.set(1);
        }
        if (struct.isSetEnvironment_context()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTable_name()) {
          oprot.writeString(struct.table_name);
        }
        if (struct.isSetEnvironment_context()) {
          struct.environment_context.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_fields_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.table_name = iprot.readString();
          struct.setTable_nameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.environment_context = new EnvironmentContext();
          struct.environment_context.read(iprot);
          struct.setEnvironment_contextIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_fields_with_environment_context_result implements org.apache.thrift.TBase<get_fields_with_environment_context_result, get_fields_with_environment_context_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_fields_with_environment_context_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_fields_with_environment_context_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_fields_with_environment_context_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_fields_with_environment_context_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<FieldSchema> success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable UnknownTableException o2; // required
    private @org.apache.thrift.annotation.Nullable UnknownDBException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, FieldSchema.class))));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UnknownTableException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UnknownDBException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_fields_with_environment_context_result.class, metaDataMap);
    }

    public get_fields_with_environment_context_result() {
    }

    public get_fields_with_environment_context_result(
      java.util.List<FieldSchema> success,
      MetaException o1,
      UnknownTableException o2,
      UnknownDBException o3)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_fields_with_environment_context_result(get_fields_with_environment_context_result other) {
      if (other.isSetSuccess()) {
        java.util.List<FieldSchema> __this__success = new java.util.ArrayList<FieldSchema>(other.success.size());
        for (FieldSchema other_element : other.success) {
          __this__success.add(new FieldSchema(other_element));
        }
        this.success = __this__success;
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new UnknownTableException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new UnknownDBException(other.o3);
      }
    }

    public get_fields_with_environment_context_result deepCopy() {
      return new get_fields_with_environment_context_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<FieldSchema> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(FieldSchema elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<FieldSchema>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<FieldSchema> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<FieldSchema> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public UnknownTableException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable UnknownTableException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public UnknownDBException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable UnknownDBException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<FieldSchema>)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((UnknownTableException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((UnknownDBException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_fields_with_environment_context_result)
        return this.equals((get_fields_with_environment_context_result)that);
      return false;
    }

    public boolean equals(get_fields_with_environment_context_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_fields_with_environment_context_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_fields_with_environment_context_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_fields_with_environment_context_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_fields_with_environment_context_resultStandardScheme getScheme() {
        return new get_fields_with_environment_context_resultStandardScheme();
      }
    }

    private static class get_fields_with_environment_context_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_fields_with_environment_context_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_fields_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list954 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<FieldSchema>(_list954.size);
                  @org.apache.thrift.annotation.Nullable FieldSchema _elem955;
                  for (int _i956 = 0; _i956 < _list954.size; ++_i956)
                  {
                    _elem955 = new FieldSchema();
                    _elem955.read(iprot);
                    struct.success.add(_elem955);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new UnknownTableException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new UnknownDBException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_fields_with_environment_context_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
            for (FieldSchema _iter957 : struct.success)
            {
              _iter957.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_fields_with_environment_context_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_fields_with_environment_context_resultTupleScheme getScheme() {
        return new get_fields_with_environment_context_resultTupleScheme();
      }
    }

    private static class get_fields_with_environment_context_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_fields_with_environment_context_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_fields_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (FieldSchema _iter958 : struct.success)
            {
              _iter958.write(oprot);
            }
          }
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_fields_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list959 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
            struct.success = new java.util.ArrayList<FieldSchema>(_list959.size);
            @org.apache.thrift.annotation.Nullable FieldSchema _elem960;
            for (int _i961 = 0; _i961 < _list959.size; ++_i961)
            {
              _elem960 = new FieldSchema();
              _elem960.read(iprot);
              struct.success.add(_elem960);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new UnknownTableException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new UnknownDBException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_schema_args implements org.apache.thrift.TBase<get_schema_args, get_schema_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_schema_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_schema_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("table_name", org.apache.thrift.protocol.TType.STRING, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_schema_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_schema_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String table_name; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TABLE_NAME((short)2, "table_name");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("table_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_schema_args.class, metaDataMap);
    }

    public get_schema_args() {
    }

    public get_schema_args(
      java.lang.String db_name,
      java.lang.String table_name)
    {
      this();
      this.db_name = db_name;
      this.table_name = table_name;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_schema_args(get_schema_args other) {
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTable_name()) {
        this.table_name = other.table_name;
      }
    }

    public get_schema_args deepCopy() {
      return new get_schema_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.table_name = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTable_name() {
      return this.table_name;
    }

    public void setTable_name(@org.apache.thrift.annotation.Nullable java.lang.String table_name) {
      this.table_name = table_name;
    }

    public void unsetTable_name() {
      this.table_name = null;
    }

    /** Returns true if field table_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTable_name() {
      return this.table_name != null;
    }

    public void setTable_nameIsSet(boolean value) {
      if (!value) {
        this.table_name = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTable_name();
        } else {
          setTable_name((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TABLE_NAME:
        return getTable_name();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TABLE_NAME:
        return isSetTable_name();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_schema_args)
        return this.equals((get_schema_args)that);
      return false;
    }

    public boolean equals(get_schema_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_table_name = true && this.isSetTable_name();
      boolean that_present_table_name = true && that.isSetTable_name();
      if (this_present_table_name || that_present_table_name) {
        if (!(this_present_table_name && that_present_table_name))
          return false;
        if (!this.table_name.equals(that.table_name))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTable_name()) ? 131071 : 524287);
      if (isSetTable_name())
        hashCode = hashCode * 8191 + table_name.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_schema_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTable_name(), other.isSetTable_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTable_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.table_name, other.table_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_schema_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("table_name:");
      if (this.table_name == null) {
        sb.append("null");
      } else {
        sb.append(this.table_name);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_schema_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_schema_argsStandardScheme getScheme() {
        return new get_schema_argsStandardScheme();
      }
    }

    private static class get_schema_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_schema_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_schema_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.table_name = iprot.readString();
                struct.setTable_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_schema_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.table_name != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.table_name);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_schema_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_schema_argsTupleScheme getScheme() {
        return new get_schema_argsTupleScheme();
      }
    }

    private static class get_schema_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_schema_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_schema_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTable_name()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTable_name()) {
          oprot.writeString(struct.table_name);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_schema_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.table_name = iprot.readString();
          struct.setTable_nameIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_schema_result implements org.apache.thrift.TBase<get_schema_result, get_schema_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_schema_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_schema_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_schema_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_schema_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<FieldSchema> success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable UnknownTableException o2; // required
    private @org.apache.thrift.annotation.Nullable UnknownDBException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, FieldSchema.class))));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UnknownTableException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UnknownDBException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_schema_result.class, metaDataMap);
    }

    public get_schema_result() {
    }

    public get_schema_result(
      java.util.List<FieldSchema> success,
      MetaException o1,
      UnknownTableException o2,
      UnknownDBException o3)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_schema_result(get_schema_result other) {
      if (other.isSetSuccess()) {
        java.util.List<FieldSchema> __this__success = new java.util.ArrayList<FieldSchema>(other.success.size());
        for (FieldSchema other_element : other.success) {
          __this__success.add(new FieldSchema(other_element));
        }
        this.success = __this__success;
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new UnknownTableException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new UnknownDBException(other.o3);
      }
    }

    public get_schema_result deepCopy() {
      return new get_schema_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<FieldSchema> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(FieldSchema elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<FieldSchema>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<FieldSchema> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<FieldSchema> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public UnknownTableException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable UnknownTableException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public UnknownDBException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable UnknownDBException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<FieldSchema>)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((UnknownTableException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((UnknownDBException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_schema_result)
        return this.equals((get_schema_result)that);
      return false;
    }

    public boolean equals(get_schema_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_schema_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_schema_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_schema_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_schema_resultStandardScheme getScheme() {
        return new get_schema_resultStandardScheme();
      }
    }

    private static class get_schema_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_schema_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_schema_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list962 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<FieldSchema>(_list962.size);
                  @org.apache.thrift.annotation.Nullable FieldSchema _elem963;
                  for (int _i964 = 0; _i964 < _list962.size; ++_i964)
                  {
                    _elem963 = new FieldSchema();
                    _elem963.read(iprot);
                    struct.success.add(_elem963);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new UnknownTableException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new UnknownDBException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_schema_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
            for (FieldSchema _iter965 : struct.success)
            {
              _iter965.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_schema_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_schema_resultTupleScheme getScheme() {
        return new get_schema_resultTupleScheme();
      }
    }

    private static class get_schema_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_schema_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_schema_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (FieldSchema _iter966 : struct.success)
            {
              _iter966.write(oprot);
            }
          }
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_schema_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list967 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
            struct.success = new java.util.ArrayList<FieldSchema>(_list967.size);
            @org.apache.thrift.annotation.Nullable FieldSchema _elem968;
            for (int _i969 = 0; _i969 < _list967.size; ++_i969)
            {
              _elem968 = new FieldSchema();
              _elem968.read(iprot);
              struct.success.add(_elem968);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new UnknownTableException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new UnknownDBException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_schema_with_environment_context_args implements org.apache.thrift.TBase<get_schema_with_environment_context_args, get_schema_with_environment_context_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_schema_with_environment_context_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_schema_with_environment_context_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("table_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField ENVIRONMENT_CONTEXT_FIELD_DESC = new org.apache.thrift.protocol.TField("environment_context", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_schema_with_environment_context_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_schema_with_environment_context_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String table_name; // required
    private @org.apache.thrift.annotation.Nullable EnvironmentContext environment_context; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TABLE_NAME((short)2, "table_name"),
      ENVIRONMENT_CONTEXT((short)3, "environment_context");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // ENVIRONMENT_CONTEXT
            return ENVIRONMENT_CONTEXT;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("table_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.ENVIRONMENT_CONTEXT, new org.apache.thrift.meta_data.FieldMetaData("environment_context", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, EnvironmentContext.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_schema_with_environment_context_args.class, metaDataMap);
    }

    public get_schema_with_environment_context_args() {
    }

    public get_schema_with_environment_context_args(
      java.lang.String db_name,
      java.lang.String table_name,
      EnvironmentContext environment_context)
    {
      this();
      this.db_name = db_name;
      this.table_name = table_name;
      this.environment_context = environment_context;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_schema_with_environment_context_args(get_schema_with_environment_context_args other) {
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTable_name()) {
        this.table_name = other.table_name;
      }
      if (other.isSetEnvironment_context()) {
        this.environment_context = new EnvironmentContext(other.environment_context);
      }
    }

    public get_schema_with_environment_context_args deepCopy() {
      return new get_schema_with_environment_context_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.table_name = null;
      this.environment_context = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTable_name() {
      return this.table_name;
    }

    public void setTable_name(@org.apache.thrift.annotation.Nullable java.lang.String table_name) {
      this.table_name = table_name;
    }

    public void unsetTable_name() {
      this.table_name = null;
    }

    /** Returns true if field table_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTable_name() {
      return this.table_name != null;
    }

    public void setTable_nameIsSet(boolean value) {
      if (!value) {
        this.table_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public EnvironmentContext getEnvironment_context() {
      return this.environment_context;
    }

    public void setEnvironment_context(@org.apache.thrift.annotation.Nullable EnvironmentContext environment_context) {
      this.environment_context = environment_context;
    }

    public void unsetEnvironment_context() {
      this.environment_context = null;
    }

    /** Returns true if field environment_context is set (has been assigned a value) and false otherwise */
    public boolean isSetEnvironment_context() {
      return this.environment_context != null;
    }

    public void setEnvironment_contextIsSet(boolean value) {
      if (!value) {
        this.environment_context = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTable_name();
        } else {
          setTable_name((java.lang.String)value);
        }
        break;

      case ENVIRONMENT_CONTEXT:
        if (value == null) {
          unsetEnvironment_context();
        } else {
          setEnvironment_context((EnvironmentContext)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TABLE_NAME:
        return getTable_name();

      case ENVIRONMENT_CONTEXT:
        return getEnvironment_context();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TABLE_NAME:
        return isSetTable_name();
      case ENVIRONMENT_CONTEXT:
        return isSetEnvironment_context();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_schema_with_environment_context_args)
        return this.equals((get_schema_with_environment_context_args)that);
      return false;
    }

    public boolean equals(get_schema_with_environment_context_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_table_name = true && this.isSetTable_name();
      boolean that_present_table_name = true && that.isSetTable_name();
      if (this_present_table_name || that_present_table_name) {
        if (!(this_present_table_name && that_present_table_name))
          return false;
        if (!this.table_name.equals(that.table_name))
          return false;
      }

      boolean this_present_environment_context = true && this.isSetEnvironment_context();
      boolean that_present_environment_context = true && that.isSetEnvironment_context();
      if (this_present_environment_context || that_present_environment_context) {
        if (!(this_present_environment_context && that_present_environment_context))
          return false;
        if (!this.environment_context.equals(that.environment_context))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTable_name()) ? 131071 : 524287);
      if (isSetTable_name())
        hashCode = hashCode * 8191 + table_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetEnvironment_context()) ? 131071 : 524287);
      if (isSetEnvironment_context())
        hashCode = hashCode * 8191 + environment_context.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_schema_with_environment_context_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTable_name(), other.isSetTable_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTable_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.table_name, other.table_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetEnvironment_context(), other.isSetEnvironment_context());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEnvironment_context()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.environment_context, other.environment_context);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_schema_with_environment_context_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("table_name:");
      if (this.table_name == null) {
        sb.append("null");
      } else {
        sb.append(this.table_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("environment_context:");
      if (this.environment_context == null) {
        sb.append("null");
      } else {
        sb.append(this.environment_context);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (environment_context != null) {
        environment_context.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_schema_with_environment_context_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_schema_with_environment_context_argsStandardScheme getScheme() {
        return new get_schema_with_environment_context_argsStandardScheme();
      }
    }

    private static class get_schema_with_environment_context_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_schema_with_environment_context_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_schema_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.table_name = iprot.readString();
                struct.setTable_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // ENVIRONMENT_CONTEXT
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.environment_context = new EnvironmentContext();
                struct.environment_context.read(iprot);
                struct.setEnvironment_contextIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_schema_with_environment_context_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.table_name != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.table_name);
          oprot.writeFieldEnd();
        }
        if (struct.environment_context != null) {
          oprot.writeFieldBegin(ENVIRONMENT_CONTEXT_FIELD_DESC);
          struct.environment_context.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_schema_with_environment_context_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_schema_with_environment_context_argsTupleScheme getScheme() {
        return new get_schema_with_environment_context_argsTupleScheme();
      }
    }

    private static class get_schema_with_environment_context_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_schema_with_environment_context_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_schema_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTable_name()) {
          optionals.set(1);
        }
        if (struct.isSetEnvironment_context()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTable_name()) {
          oprot.writeString(struct.table_name);
        }
        if (struct.isSetEnvironment_context()) {
          struct.environment_context.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_schema_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.table_name = iprot.readString();
          struct.setTable_nameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.environment_context = new EnvironmentContext();
          struct.environment_context.read(iprot);
          struct.setEnvironment_contextIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_schema_with_environment_context_result implements org.apache.thrift.TBase<get_schema_with_environment_context_result, get_schema_with_environment_context_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_schema_with_environment_context_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_schema_with_environment_context_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_schema_with_environment_context_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_schema_with_environment_context_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<FieldSchema> success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable UnknownTableException o2; // required
    private @org.apache.thrift.annotation.Nullable UnknownDBException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, FieldSchema.class))));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UnknownTableException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UnknownDBException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_schema_with_environment_context_result.class, metaDataMap);
    }

    public get_schema_with_environment_context_result() {
    }

    public get_schema_with_environment_context_result(
      java.util.List<FieldSchema> success,
      MetaException o1,
      UnknownTableException o2,
      UnknownDBException o3)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_schema_with_environment_context_result(get_schema_with_environment_context_result other) {
      if (other.isSetSuccess()) {
        java.util.List<FieldSchema> __this__success = new java.util.ArrayList<FieldSchema>(other.success.size());
        for (FieldSchema other_element : other.success) {
          __this__success.add(new FieldSchema(other_element));
        }
        this.success = __this__success;
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new UnknownTableException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new UnknownDBException(other.o3);
      }
    }

    public get_schema_with_environment_context_result deepCopy() {
      return new get_schema_with_environment_context_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<FieldSchema> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(FieldSchema elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<FieldSchema>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<FieldSchema> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<FieldSchema> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public UnknownTableException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable UnknownTableException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public UnknownDBException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable UnknownDBException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<FieldSchema>)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((UnknownTableException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((UnknownDBException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_schema_with_environment_context_result)
        return this.equals((get_schema_with_environment_context_result)that);
      return false;
    }

    public boolean equals(get_schema_with_environment_context_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_schema_with_environment_context_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_schema_with_environment_context_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_schema_with_environment_context_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_schema_with_environment_context_resultStandardScheme getScheme() {
        return new get_schema_with_environment_context_resultStandardScheme();
      }
    }

    private static class get_schema_with_environment_context_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_schema_with_environment_context_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_schema_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list970 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<FieldSchema>(_list970.size);
                  @org.apache.thrift.annotation.Nullable FieldSchema _elem971;
                  for (int _i972 = 0; _i972 < _list970.size; ++_i972)
                  {
                    _elem971 = new FieldSchema();
                    _elem971.read(iprot);
                    struct.success.add(_elem971);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new UnknownTableException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new UnknownDBException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_schema_with_environment_context_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
            for (FieldSchema _iter973 : struct.success)
            {
              _iter973.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_schema_with_environment_context_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_schema_with_environment_context_resultTupleScheme getScheme() {
        return new get_schema_with_environment_context_resultTupleScheme();
      }
    }

    private static class get_schema_with_environment_context_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_schema_with_environment_context_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_schema_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (FieldSchema _iter974 : struct.success)
            {
              _iter974.write(oprot);
            }
          }
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_schema_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list975 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
            struct.success = new java.util.ArrayList<FieldSchema>(_list975.size);
            @org.apache.thrift.annotation.Nullable FieldSchema _elem976;
            for (int _i977 = 0; _i977 < _list975.size; ++_i977)
            {
              _elem976 = new FieldSchema();
              _elem976.read(iprot);
              struct.success.add(_elem976);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new UnknownTableException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new UnknownDBException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_table_args implements org.apache.thrift.TBase<create_table_args, create_table_args._Fields>, java.io.Serializable, Cloneable, Comparable<create_table_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("create_table_args");

    private static final org.apache.thrift.protocol.TField TBL_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new create_table_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new create_table_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable Table tbl; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      TBL((short)1, "tbl");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // TBL
            return TBL;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.TBL, new org.apache.thrift.meta_data.FieldMetaData("tbl", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Table.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(create_table_args.class, metaDataMap);
    }

    public create_table_args() {
    }

    public create_table_args(
      Table tbl)
    {
      this();
      this.tbl = tbl;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public create_table_args(create_table_args other) {
      if (other.isSetTbl()) {
        this.tbl = new Table(other.tbl);
      }
    }

    public create_table_args deepCopy() {
      return new create_table_args(this);
    }

    @Override
    public void clear() {
      this.tbl = null;
    }

    @org.apache.thrift.annotation.Nullable
    public Table getTbl() {
      return this.tbl;
    }

    public void setTbl(@org.apache.thrift.annotation.Nullable Table tbl) {
      this.tbl = tbl;
    }

    public void unsetTbl() {
      this.tbl = null;
    }

    /** Returns true if field tbl is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl() {
      return this.tbl != null;
    }

    public void setTblIsSet(boolean value) {
      if (!value) {
        this.tbl = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case TBL:
        if (value == null) {
          unsetTbl();
        } else {
          setTbl((Table)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case TBL:
        return getTbl();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case TBL:
        return isSetTbl();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof create_table_args)
        return this.equals((create_table_args)that);
      return false;
    }

    public boolean equals(create_table_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_tbl = true && this.isSetTbl();
      boolean that_present_tbl = true && that.isSetTbl();
      if (this_present_tbl || that_present_tbl) {
        if (!(this_present_tbl && that_present_tbl))
          return false;
        if (!this.tbl.equals(that.tbl))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetTbl()) ? 131071 : 524287);
      if (isSetTbl())
        hashCode = hashCode * 8191 + tbl.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(create_table_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetTbl(), other.isSetTbl());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl, other.tbl);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("create_table_args(");
      boolean first = true;

      sb.append("tbl:");
      if (this.tbl == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (tbl != null) {
        tbl.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class create_table_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_table_argsStandardScheme getScheme() {
        return new create_table_argsStandardScheme();
      }
    }

    private static class create_table_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<create_table_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, create_table_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // TBL
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.tbl = new Table();
                struct.tbl.read(iprot);
                struct.setTblIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, create_table_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.tbl != null) {
          oprot.writeFieldBegin(TBL_FIELD_DESC);
          struct.tbl.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class create_table_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_table_argsTupleScheme getScheme() {
        return new create_table_argsTupleScheme();
      }
    }

    private static class create_table_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<create_table_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, create_table_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetTbl()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetTbl()) {
          struct.tbl.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, create_table_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.tbl = new Table();
          struct.tbl.read(iprot);
          struct.setTblIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_table_result implements org.apache.thrift.TBase<create_table_result, create_table_result._Fields>, java.io.Serializable, Cloneable, Comparable<create_table_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("create_table_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField O4_FIELD_DESC = new org.apache.thrift.protocol.TField("o4", org.apache.thrift.protocol.TType.STRUCT, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new create_table_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new create_table_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable AlreadyExistsException o1; // required
    private @org.apache.thrift.annotation.Nullable InvalidObjectException o2; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o4; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3"),
      O4((short)4, "o4");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          case 4: // O4
            return O4;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AlreadyExistsException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidObjectException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O4, new org.apache.thrift.meta_data.FieldMetaData("o4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(create_table_result.class, metaDataMap);
    }

    public create_table_result() {
    }

    public create_table_result(
      AlreadyExistsException o1,
      InvalidObjectException o2,
      MetaException o3,
      NoSuchObjectException o4)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
      this.o4 = o4;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public create_table_result(create_table_result other) {
      if (other.isSetO1()) {
        this.o1 = new AlreadyExistsException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new InvalidObjectException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
      if (other.isSetO4()) {
        this.o4 = new NoSuchObjectException(other.o4);
      }
    }

    public create_table_result deepCopy() {
      return new create_table_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
      this.o4 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public AlreadyExistsException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable AlreadyExistsException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable InvalidObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO4() {
      return this.o4;
    }

    public void setO4(@org.apache.thrift.annotation.Nullable NoSuchObjectException o4) {
      this.o4 = o4;
    }

    public void unsetO4() {
      this.o4 = null;
    }

    /** Returns true if field o4 is set (has been assigned a value) and false otherwise */
    public boolean isSetO4() {
      return this.o4 != null;
    }

    public void setO4IsSet(boolean value) {
      if (!value) {
        this.o4 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((AlreadyExistsException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((InvalidObjectException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      case O4:
        if (value == null) {
          unsetO4();
        } else {
          setO4((NoSuchObjectException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      case O4:
        return getO4();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      case O4:
        return isSetO4();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof create_table_result)
        return this.equals((create_table_result)that);
      return false;
    }

    public boolean equals(create_table_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      boolean this_present_o4 = true && this.isSetO4();
      boolean that_present_o4 = true && that.isSetO4();
      if (this_present_o4 || that_present_o4) {
        if (!(this_present_o4 && that_present_o4))
          return false;
        if (!this.o4.equals(that.o4))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      hashCode = hashCode * 8191 + ((isSetO4()) ? 131071 : 524287);
      if (isSetO4())
        hashCode = hashCode * 8191 + o4.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(create_table_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO4(), other.isSetO4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o4, other.o4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("create_table_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o4:");
      if (this.o4 == null) {
        sb.append("null");
      } else {
        sb.append(this.o4);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class create_table_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_table_resultStandardScheme getScheme() {
        return new create_table_resultStandardScheme();
      }
    }

    private static class create_table_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<create_table_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, create_table_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new AlreadyExistsException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new InvalidObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // O4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o4 = new NoSuchObjectException();
                struct.o4.read(iprot);
                struct.setO4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, create_table_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o4 != null) {
          oprot.writeFieldBegin(O4_FIELD_DESC);
          struct.o4.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class create_table_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_table_resultTupleScheme getScheme() {
        return new create_table_resultTupleScheme();
      }
    }

    private static class create_table_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<create_table_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, create_table_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        if (struct.isSetO3()) {
          optionals.set(2);
        }
        if (struct.isSetO4()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
        if (struct.isSetO4()) {
          struct.o4.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, create_table_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.o1 = new AlreadyExistsException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new InvalidObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o4 = new NoSuchObjectException();
          struct.o4.read(iprot);
          struct.setO4IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_table_with_environment_context_args implements org.apache.thrift.TBase<create_table_with_environment_context_args, create_table_with_environment_context_args._Fields>, java.io.Serializable, Cloneable, Comparable<create_table_with_environment_context_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("create_table_with_environment_context_args");

    private static final org.apache.thrift.protocol.TField TBL_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField ENVIRONMENT_CONTEXT_FIELD_DESC = new org.apache.thrift.protocol.TField("environment_context", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new create_table_with_environment_context_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new create_table_with_environment_context_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable Table tbl; // required
    private @org.apache.thrift.annotation.Nullable EnvironmentContext environment_context; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      TBL((short)1, "tbl"),
      ENVIRONMENT_CONTEXT((short)2, "environment_context");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // TBL
            return TBL;
          case 2: // ENVIRONMENT_CONTEXT
            return ENVIRONMENT_CONTEXT;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.TBL, new org.apache.thrift.meta_data.FieldMetaData("tbl", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Table.class)));
      tmpMap.put(_Fields.ENVIRONMENT_CONTEXT, new org.apache.thrift.meta_data.FieldMetaData("environment_context", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, EnvironmentContext.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(create_table_with_environment_context_args.class, metaDataMap);
    }

    public create_table_with_environment_context_args() {
    }

    public create_table_with_environment_context_args(
      Table tbl,
      EnvironmentContext environment_context)
    {
      this();
      this.tbl = tbl;
      this.environment_context = environment_context;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public create_table_with_environment_context_args(create_table_with_environment_context_args other) {
      if (other.isSetTbl()) {
        this.tbl = new Table(other.tbl);
      }
      if (other.isSetEnvironment_context()) {
        this.environment_context = new EnvironmentContext(other.environment_context);
      }
    }

    public create_table_with_environment_context_args deepCopy() {
      return new create_table_with_environment_context_args(this);
    }

    @Override
    public void clear() {
      this.tbl = null;
      this.environment_context = null;
    }

    @org.apache.thrift.annotation.Nullable
    public Table getTbl() {
      return this.tbl;
    }

    public void setTbl(@org.apache.thrift.annotation.Nullable Table tbl) {
      this.tbl = tbl;
    }

    public void unsetTbl() {
      this.tbl = null;
    }

    /** Returns true if field tbl is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl() {
      return this.tbl != null;
    }

    public void setTblIsSet(boolean value) {
      if (!value) {
        this.tbl = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public EnvironmentContext getEnvironment_context() {
      return this.environment_context;
    }

    public void setEnvironment_context(@org.apache.thrift.annotation.Nullable EnvironmentContext environment_context) {
      this.environment_context = environment_context;
    }

    public void unsetEnvironment_context() {
      this.environment_context = null;
    }

    /** Returns true if field environment_context is set (has been assigned a value) and false otherwise */
    public boolean isSetEnvironment_context() {
      return this.environment_context != null;
    }

    public void setEnvironment_contextIsSet(boolean value) {
      if (!value) {
        this.environment_context = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case TBL:
        if (value == null) {
          unsetTbl();
        } else {
          setTbl((Table)value);
        }
        break;

      case ENVIRONMENT_CONTEXT:
        if (value == null) {
          unsetEnvironment_context();
        } else {
          setEnvironment_context((EnvironmentContext)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case TBL:
        return getTbl();

      case ENVIRONMENT_CONTEXT:
        return getEnvironment_context();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case TBL:
        return isSetTbl();
      case ENVIRONMENT_CONTEXT:
        return isSetEnvironment_context();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof create_table_with_environment_context_args)
        return this.equals((create_table_with_environment_context_args)that);
      return false;
    }

    public boolean equals(create_table_with_environment_context_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_tbl = true && this.isSetTbl();
      boolean that_present_tbl = true && that.isSetTbl();
      if (this_present_tbl || that_present_tbl) {
        if (!(this_present_tbl && that_present_tbl))
          return false;
        if (!this.tbl.equals(that.tbl))
          return false;
      }

      boolean this_present_environment_context = true && this.isSetEnvironment_context();
      boolean that_present_environment_context = true && that.isSetEnvironment_context();
      if (this_present_environment_context || that_present_environment_context) {
        if (!(this_present_environment_context && that_present_environment_context))
          return false;
        if (!this.environment_context.equals(that.environment_context))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetTbl()) ? 131071 : 524287);
      if (isSetTbl())
        hashCode = hashCode * 8191 + tbl.hashCode();

      hashCode = hashCode * 8191 + ((isSetEnvironment_context()) ? 131071 : 524287);
      if (isSetEnvironment_context())
        hashCode = hashCode * 8191 + environment_context.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(create_table_with_environment_context_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetTbl(), other.isSetTbl());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl, other.tbl);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetEnvironment_context(), other.isSetEnvironment_context());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEnvironment_context()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.environment_context, other.environment_context);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("create_table_with_environment_context_args(");
      boolean first = true;

      sb.append("tbl:");
      if (this.tbl == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("environment_context:");
      if (this.environment_context == null) {
        sb.append("null");
      } else {
        sb.append(this.environment_context);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (tbl != null) {
        tbl.validate();
      }
      if (environment_context != null) {
        environment_context.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class create_table_with_environment_context_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_table_with_environment_context_argsStandardScheme getScheme() {
        return new create_table_with_environment_context_argsStandardScheme();
      }
    }

    private static class create_table_with_environment_context_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<create_table_with_environment_context_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, create_table_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // TBL
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.tbl = new Table();
                struct.tbl.read(iprot);
                struct.setTblIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // ENVIRONMENT_CONTEXT
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.environment_context = new EnvironmentContext();
                struct.environment_context.read(iprot);
                struct.setEnvironment_contextIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, create_table_with_environment_context_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.tbl != null) {
          oprot.writeFieldBegin(TBL_FIELD_DESC);
          struct.tbl.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.environment_context != null) {
          oprot.writeFieldBegin(ENVIRONMENT_CONTEXT_FIELD_DESC);
          struct.environment_context.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class create_table_with_environment_context_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_table_with_environment_context_argsTupleScheme getScheme() {
        return new create_table_with_environment_context_argsTupleScheme();
      }
    }

    private static class create_table_with_environment_context_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<create_table_with_environment_context_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, create_table_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetTbl()) {
          optionals.set(0);
        }
        if (struct.isSetEnvironment_context()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetTbl()) {
          struct.tbl.write(oprot);
        }
        if (struct.isSetEnvironment_context()) {
          struct.environment_context.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, create_table_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.tbl = new Table();
          struct.tbl.read(iprot);
          struct.setTblIsSet(true);
        }
        if (incoming.get(1)) {
          struct.environment_context = new EnvironmentContext();
          struct.environment_context.read(iprot);
          struct.setEnvironment_contextIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_table_with_environment_context_result implements org.apache.thrift.TBase<create_table_with_environment_context_result, create_table_with_environment_context_result._Fields>, java.io.Serializable, Cloneable, Comparable<create_table_with_environment_context_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("create_table_with_environment_context_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField O4_FIELD_DESC = new org.apache.thrift.protocol.TField("o4", org.apache.thrift.protocol.TType.STRUCT, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new create_table_with_environment_context_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new create_table_with_environment_context_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable AlreadyExistsException o1; // required
    private @org.apache.thrift.annotation.Nullable InvalidObjectException o2; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o4; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3"),
      O4((short)4, "o4");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          case 4: // O4
            return O4;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AlreadyExistsException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidObjectException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O4, new org.apache.thrift.meta_data.FieldMetaData("o4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(create_table_with_environment_context_result.class, metaDataMap);
    }

    public create_table_with_environment_context_result() {
    }

    public create_table_with_environment_context_result(
      AlreadyExistsException o1,
      InvalidObjectException o2,
      MetaException o3,
      NoSuchObjectException o4)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
      this.o4 = o4;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public create_table_with_environment_context_result(create_table_with_environment_context_result other) {
      if (other.isSetO1()) {
        this.o1 = new AlreadyExistsException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new InvalidObjectException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
      if (other.isSetO4()) {
        this.o4 = new NoSuchObjectException(other.o4);
      }
    }

    public create_table_with_environment_context_result deepCopy() {
      return new create_table_with_environment_context_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
      this.o4 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public AlreadyExistsException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable AlreadyExistsException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable InvalidObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO4() {
      return this.o4;
    }

    public void setO4(@org.apache.thrift.annotation.Nullable NoSuchObjectException o4) {
      this.o4 = o4;
    }

    public void unsetO4() {
      this.o4 = null;
    }

    /** Returns true if field o4 is set (has been assigned a value) and false otherwise */
    public boolean isSetO4() {
      return this.o4 != null;
    }

    public void setO4IsSet(boolean value) {
      if (!value) {
        this.o4 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((AlreadyExistsException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((InvalidObjectException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      case O4:
        if (value == null) {
          unsetO4();
        } else {
          setO4((NoSuchObjectException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      case O4:
        return getO4();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      case O4:
        return isSetO4();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof create_table_with_environment_context_result)
        return this.equals((create_table_with_environment_context_result)that);
      return false;
    }

    public boolean equals(create_table_with_environment_context_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      boolean this_present_o4 = true && this.isSetO4();
      boolean that_present_o4 = true && that.isSetO4();
      if (this_present_o4 || that_present_o4) {
        if (!(this_present_o4 && that_present_o4))
          return false;
        if (!this.o4.equals(that.o4))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      hashCode = hashCode * 8191 + ((isSetO4()) ? 131071 : 524287);
      if (isSetO4())
        hashCode = hashCode * 8191 + o4.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(create_table_with_environment_context_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO4(), other.isSetO4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o4, other.o4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("create_table_with_environment_context_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o4:");
      if (this.o4 == null) {
        sb.append("null");
      } else {
        sb.append(this.o4);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class create_table_with_environment_context_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_table_with_environment_context_resultStandardScheme getScheme() {
        return new create_table_with_environment_context_resultStandardScheme();
      }
    }

    private static class create_table_with_environment_context_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<create_table_with_environment_context_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, create_table_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new AlreadyExistsException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new InvalidObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // O4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o4 = new NoSuchObjectException();
                struct.o4.read(iprot);
                struct.setO4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, create_table_with_environment_context_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o4 != null) {
          oprot.writeFieldBegin(O4_FIELD_DESC);
          struct.o4.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class create_table_with_environment_context_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_table_with_environment_context_resultTupleScheme getScheme() {
        return new create_table_with_environment_context_resultTupleScheme();
      }
    }

    private static class create_table_with_environment_context_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<create_table_with_environment_context_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, create_table_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        if (struct.isSetO3()) {
          optionals.set(2);
        }
        if (struct.isSetO4()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
        if (struct.isSetO4()) {
          struct.o4.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, create_table_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.o1 = new AlreadyExistsException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new InvalidObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o4 = new NoSuchObjectException();
          struct.o4.read(iprot);
          struct.setO4IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_table_with_constraints_args implements org.apache.thrift.TBase<create_table_with_constraints_args, create_table_with_constraints_args._Fields>, java.io.Serializable, Cloneable, Comparable<create_table_with_constraints_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("create_table_with_constraints_args");

    private static final org.apache.thrift.protocol.TField TBL_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField PRIMARY_KEYS_FIELD_DESC = new org.apache.thrift.protocol.TField("primaryKeys", org.apache.thrift.protocol.TType.LIST, (short)2);
    private static final org.apache.thrift.protocol.TField FOREIGN_KEYS_FIELD_DESC = new org.apache.thrift.protocol.TField("foreignKeys", org.apache.thrift.protocol.TType.LIST, (short)3);
    private static final org.apache.thrift.protocol.TField UNIQUE_CONSTRAINTS_FIELD_DESC = new org.apache.thrift.protocol.TField("uniqueConstraints", org.apache.thrift.protocol.TType.LIST, (short)4);
    private static final org.apache.thrift.protocol.TField NOT_NULL_CONSTRAINTS_FIELD_DESC = new org.apache.thrift.protocol.TField("notNullConstraints", org.apache.thrift.protocol.TType.LIST, (short)5);
    private static final org.apache.thrift.protocol.TField DEFAULT_CONSTRAINTS_FIELD_DESC = new org.apache.thrift.protocol.TField("defaultConstraints", org.apache.thrift.protocol.TType.LIST, (short)6);
    private static final org.apache.thrift.protocol.TField CHECK_CONSTRAINTS_FIELD_DESC = new org.apache.thrift.protocol.TField("checkConstraints", org.apache.thrift.protocol.TType.LIST, (short)7);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new create_table_with_constraints_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new create_table_with_constraints_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable Table tbl; // required
    private @org.apache.thrift.annotation.Nullable java.util.List<SQLPrimaryKey> primaryKeys; // required
    private @org.apache.thrift.annotation.Nullable java.util.List<SQLForeignKey> foreignKeys; // required
    private @org.apache.thrift.annotation.Nullable java.util.List<SQLUniqueConstraint> uniqueConstraints; // required
    private @org.apache.thrift.annotation.Nullable java.util.List<SQLNotNullConstraint> notNullConstraints; // required
    private @org.apache.thrift.annotation.Nullable java.util.List<SQLDefaultConstraint> defaultConstraints; // required
    private @org.apache.thrift.annotation.Nullable java.util.List<SQLCheckConstraint> checkConstraints; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      TBL((short)1, "tbl"),
      PRIMARY_KEYS((short)2, "primaryKeys"),
      FOREIGN_KEYS((short)3, "foreignKeys"),
      UNIQUE_CONSTRAINTS((short)4, "uniqueConstraints"),
      NOT_NULL_CONSTRAINTS((short)5, "notNullConstraints"),
      DEFAULT_CONSTRAINTS((short)6, "defaultConstraints"),
      CHECK_CONSTRAINTS((short)7, "checkConstraints");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // TBL
            return TBL;
          case 2: // PRIMARY_KEYS
            return PRIMARY_KEYS;
          case 3: // FOREIGN_KEYS
            return FOREIGN_KEYS;
          case 4: // UNIQUE_CONSTRAINTS
            return UNIQUE_CONSTRAINTS;
          case 5: // NOT_NULL_CONSTRAINTS
            return NOT_NULL_CONSTRAINTS;
          case 6: // DEFAULT_CONSTRAINTS
            return DEFAULT_CONSTRAINTS;
          case 7: // CHECK_CONSTRAINTS
            return CHECK_CONSTRAINTS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.TBL, new org.apache.thrift.meta_data.FieldMetaData("tbl", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Table.class)));
      tmpMap.put(_Fields.PRIMARY_KEYS, new org.apache.thrift.meta_data.FieldMetaData("primaryKeys", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SQLPrimaryKey.class))));
      tmpMap.put(_Fields.FOREIGN_KEYS, new org.apache.thrift.meta_data.FieldMetaData("foreignKeys", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SQLForeignKey.class))));
      tmpMap.put(_Fields.UNIQUE_CONSTRAINTS, new org.apache.thrift.meta_data.FieldMetaData("uniqueConstraints", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SQLUniqueConstraint.class))));
      tmpMap.put(_Fields.NOT_NULL_CONSTRAINTS, new org.apache.thrift.meta_data.FieldMetaData("notNullConstraints", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SQLNotNullConstraint.class))));
      tmpMap.put(_Fields.DEFAULT_CONSTRAINTS, new org.apache.thrift.meta_data.FieldMetaData("defaultConstraints", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SQLDefaultConstraint.class))));
      tmpMap.put(_Fields.CHECK_CONSTRAINTS, new org.apache.thrift.meta_data.FieldMetaData("checkConstraints", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SQLCheckConstraint.class))));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(create_table_with_constraints_args.class, metaDataMap);
    }

    public create_table_with_constraints_args() {
    }

    public create_table_with_constraints_args(
      Table tbl,
      java.util.List<SQLPrimaryKey> primaryKeys,
      java.util.List<SQLForeignKey> foreignKeys,
      java.util.List<SQLUniqueConstraint> uniqueConstraints,
      java.util.List<SQLNotNullConstraint> notNullConstraints,
      java.util.List<SQLDefaultConstraint> defaultConstraints,
      java.util.List<SQLCheckConstraint> checkConstraints)
    {
      this();
      this.tbl = tbl;
      this.primaryKeys = primaryKeys;
      this.foreignKeys = foreignKeys;
      this.uniqueConstraints = uniqueConstraints;
      this.notNullConstraints = notNullConstraints;
      this.defaultConstraints = defaultConstraints;
      this.checkConstraints = checkConstraints;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public create_table_with_constraints_args(create_table_with_constraints_args other) {
      if (other.isSetTbl()) {
        this.tbl = new Table(other.tbl);
      }
      if (other.isSetPrimaryKeys()) {
        java.util.List<SQLPrimaryKey> __this__primaryKeys = new java.util.ArrayList<SQLPrimaryKey>(other.primaryKeys.size());
        for (SQLPrimaryKey other_element : other.primaryKeys) {
          __this__primaryKeys.add(new SQLPrimaryKey(other_element));
        }
        this.primaryKeys = __this__primaryKeys;
      }
      if (other.isSetForeignKeys()) {
        java.util.List<SQLForeignKey> __this__foreignKeys = new java.util.ArrayList<SQLForeignKey>(other.foreignKeys.size());
        for (SQLForeignKey other_element : other.foreignKeys) {
          __this__foreignKeys.add(new SQLForeignKey(other_element));
        }
        this.foreignKeys = __this__foreignKeys;
      }
      if (other.isSetUniqueConstraints()) {
        java.util.List<SQLUniqueConstraint> __this__uniqueConstraints = new java.util.ArrayList<SQLUniqueConstraint>(other.uniqueConstraints.size());
        for (SQLUniqueConstraint other_element : other.uniqueConstraints) {
          __this__uniqueConstraints.add(new SQLUniqueConstraint(other_element));
        }
        this.uniqueConstraints = __this__uniqueConstraints;
      }
      if (other.isSetNotNullConstraints()) {
        java.util.List<SQLNotNullConstraint> __this__notNullConstraints = new java.util.ArrayList<SQLNotNullConstraint>(other.notNullConstraints.size());
        for (SQLNotNullConstraint other_element : other.notNullConstraints) {
          __this__notNullConstraints.add(new SQLNotNullConstraint(other_element));
        }
        this.notNullConstraints = __this__notNullConstraints;
      }
      if (other.isSetDefaultConstraints()) {
        java.util.List<SQLDefaultConstraint> __this__defaultConstraints = new java.util.ArrayList<SQLDefaultConstraint>(other.defaultConstraints.size());
        for (SQLDefaultConstraint other_element : other.defaultConstraints) {
          __this__defaultConstraints.add(new SQLDefaultConstraint(other_element));
        }
        this.defaultConstraints = __this__defaultConstraints;
      }
      if (other.isSetCheckConstraints()) {
        java.util.List<SQLCheckConstraint> __this__checkConstraints = new java.util.ArrayList<SQLCheckConstraint>(other.checkConstraints.size());
        for (SQLCheckConstraint other_element : other.checkConstraints) {
          __this__checkConstraints.add(new SQLCheckConstraint(other_element));
        }
        this.checkConstraints = __this__checkConstraints;
      }
    }

    public create_table_with_constraints_args deepCopy() {
      return new create_table_with_constraints_args(this);
    }

    @Override
    public void clear() {
      this.tbl = null;
      this.primaryKeys = null;
      this.foreignKeys = null;
      this.uniqueConstraints = null;
      this.notNullConstraints = null;
      this.defaultConstraints = null;
      this.checkConstraints = null;
    }

    @org.apache.thrift.annotation.Nullable
    public Table getTbl() {
      return this.tbl;
    }

    public void setTbl(@org.apache.thrift.annotation.Nullable Table tbl) {
      this.tbl = tbl;
    }

    public void unsetTbl() {
      this.tbl = null;
    }

    /** Returns true if field tbl is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl() {
      return this.tbl != null;
    }

    public void setTblIsSet(boolean value) {
      if (!value) {
        this.tbl = null;
      }
    }

    public int getPrimaryKeysSize() {
      return (this.primaryKeys == null) ? 0 : this.primaryKeys.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<SQLPrimaryKey> getPrimaryKeysIterator() {
      return (this.primaryKeys == null) ? null : this.primaryKeys.iterator();
    }

    public void addToPrimaryKeys(SQLPrimaryKey elem) {
      if (this.primaryKeys == null) {
        this.primaryKeys = new java.util.ArrayList<SQLPrimaryKey>();
      }
      this.primaryKeys.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<SQLPrimaryKey> getPrimaryKeys() {
      return this.primaryKeys;
    }

    public void setPrimaryKeys(@org.apache.thrift.annotation.Nullable java.util.List<SQLPrimaryKey> primaryKeys) {
      this.primaryKeys = primaryKeys;
    }

    public void unsetPrimaryKeys() {
      this.primaryKeys = null;
    }

    /** Returns true if field primaryKeys is set (has been assigned a value) and false otherwise */
    public boolean isSetPrimaryKeys() {
      return this.primaryKeys != null;
    }

    public void setPrimaryKeysIsSet(boolean value) {
      if (!value) {
        this.primaryKeys = null;
      }
    }

    public int getForeignKeysSize() {
      return (this.foreignKeys == null) ? 0 : this.foreignKeys.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<SQLForeignKey> getForeignKeysIterator() {
      return (this.foreignKeys == null) ? null : this.foreignKeys.iterator();
    }

    public void addToForeignKeys(SQLForeignKey elem) {
      if (this.foreignKeys == null) {
        this.foreignKeys = new java.util.ArrayList<SQLForeignKey>();
      }
      this.foreignKeys.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<SQLForeignKey> getForeignKeys() {
      return this.foreignKeys;
    }

    public void setForeignKeys(@org.apache.thrift.annotation.Nullable java.util.List<SQLForeignKey> foreignKeys) {
      this.foreignKeys = foreignKeys;
    }

    public void unsetForeignKeys() {
      this.foreignKeys = null;
    }

    /** Returns true if field foreignKeys is set (has been assigned a value) and false otherwise */
    public boolean isSetForeignKeys() {
      return this.foreignKeys != null;
    }

    public void setForeignKeysIsSet(boolean value) {
      if (!value) {
        this.foreignKeys = null;
      }
    }

    public int getUniqueConstraintsSize() {
      return (this.uniqueConstraints == null) ? 0 : this.uniqueConstraints.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<SQLUniqueConstraint> getUniqueConstraintsIterator() {
      return (this.uniqueConstraints == null) ? null : this.uniqueConstraints.iterator();
    }

    public void addToUniqueConstraints(SQLUniqueConstraint elem) {
      if (this.uniqueConstraints == null) {
        this.uniqueConstraints = new java.util.ArrayList<SQLUniqueConstraint>();
      }
      this.uniqueConstraints.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<SQLUniqueConstraint> getUniqueConstraints() {
      return this.uniqueConstraints;
    }

    public void setUniqueConstraints(@org.apache.thrift.annotation.Nullable java.util.List<SQLUniqueConstraint> uniqueConstraints) {
      this.uniqueConstraints = uniqueConstraints;
    }

    public void unsetUniqueConstraints() {
      this.uniqueConstraints = null;
    }

    /** Returns true if field uniqueConstraints is set (has been assigned a value) and false otherwise */
    public boolean isSetUniqueConstraints() {
      return this.uniqueConstraints != null;
    }

    public void setUniqueConstraintsIsSet(boolean value) {
      if (!value) {
        this.uniqueConstraints = null;
      }
    }

    public int getNotNullConstraintsSize() {
      return (this.notNullConstraints == null) ? 0 : this.notNullConstraints.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<SQLNotNullConstraint> getNotNullConstraintsIterator() {
      return (this.notNullConstraints == null) ? null : this.notNullConstraints.iterator();
    }

    public void addToNotNullConstraints(SQLNotNullConstraint elem) {
      if (this.notNullConstraints == null) {
        this.notNullConstraints = new java.util.ArrayList<SQLNotNullConstraint>();
      }
      this.notNullConstraints.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<SQLNotNullConstraint> getNotNullConstraints() {
      return this.notNullConstraints;
    }

    public void setNotNullConstraints(@org.apache.thrift.annotation.Nullable java.util.List<SQLNotNullConstraint> notNullConstraints) {
      this.notNullConstraints = notNullConstraints;
    }

    public void unsetNotNullConstraints() {
      this.notNullConstraints = null;
    }

    /** Returns true if field notNullConstraints is set (has been assigned a value) and false otherwise */
    public boolean isSetNotNullConstraints() {
      return this.notNullConstraints != null;
    }

    public void setNotNullConstraintsIsSet(boolean value) {
      if (!value) {
        this.notNullConstraints = null;
      }
    }

    public int getDefaultConstraintsSize() {
      return (this.defaultConstraints == null) ? 0 : this.defaultConstraints.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<SQLDefaultConstraint> getDefaultConstraintsIterator() {
      return (this.defaultConstraints == null) ? null : this.defaultConstraints.iterator();
    }

    public void addToDefaultConstraints(SQLDefaultConstraint elem) {
      if (this.defaultConstraints == null) {
        this.defaultConstraints = new java.util.ArrayList<SQLDefaultConstraint>();
      }
      this.defaultConstraints.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<SQLDefaultConstraint> getDefaultConstraints() {
      return this.defaultConstraints;
    }

    public void setDefaultConstraints(@org.apache.thrift.annotation.Nullable java.util.List<SQLDefaultConstraint> defaultConstraints) {
      this.defaultConstraints = defaultConstraints;
    }

    public void unsetDefaultConstraints() {
      this.defaultConstraints = null;
    }

    /** Returns true if field defaultConstraints is set (has been assigned a value) and false otherwise */
    public boolean isSetDefaultConstraints() {
      return this.defaultConstraints != null;
    }

    public void setDefaultConstraintsIsSet(boolean value) {
      if (!value) {
        this.defaultConstraints = null;
      }
    }

    public int getCheckConstraintsSize() {
      return (this.checkConstraints == null) ? 0 : this.checkConstraints.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<SQLCheckConstraint> getCheckConstraintsIterator() {
      return (this.checkConstraints == null) ? null : this.checkConstraints.iterator();
    }

    public void addToCheckConstraints(SQLCheckConstraint elem) {
      if (this.checkConstraints == null) {
        this.checkConstraints = new java.util.ArrayList<SQLCheckConstraint>();
      }
      this.checkConstraints.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<SQLCheckConstraint> getCheckConstraints() {
      return this.checkConstraints;
    }

    public void setCheckConstraints(@org.apache.thrift.annotation.Nullable java.util.List<SQLCheckConstraint> checkConstraints) {
      this.checkConstraints = checkConstraints;
    }

    public void unsetCheckConstraints() {
      this.checkConstraints = null;
    }

    /** Returns true if field checkConstraints is set (has been assigned a value) and false otherwise */
    public boolean isSetCheckConstraints() {
      return this.checkConstraints != null;
    }

    public void setCheckConstraintsIsSet(boolean value) {
      if (!value) {
        this.checkConstraints = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case TBL:
        if (value == null) {
          unsetTbl();
        } else {
          setTbl((Table)value);
        }
        break;

      case PRIMARY_KEYS:
        if (value == null) {
          unsetPrimaryKeys();
        } else {
          setPrimaryKeys((java.util.List<SQLPrimaryKey>)value);
        }
        break;

      case FOREIGN_KEYS:
        if (value == null) {
          unsetForeignKeys();
        } else {
          setForeignKeys((java.util.List<SQLForeignKey>)value);
        }
        break;

      case UNIQUE_CONSTRAINTS:
        if (value == null) {
          unsetUniqueConstraints();
        } else {
          setUniqueConstraints((java.util.List<SQLUniqueConstraint>)value);
        }
        break;

      case NOT_NULL_CONSTRAINTS:
        if (value == null) {
          unsetNotNullConstraints();
        } else {
          setNotNullConstraints((java.util.List<SQLNotNullConstraint>)value);
        }
        break;

      case DEFAULT_CONSTRAINTS:
        if (value == null) {
          unsetDefaultConstraints();
        } else {
          setDefaultConstraints((java.util.List<SQLDefaultConstraint>)value);
        }
        break;

      case CHECK_CONSTRAINTS:
        if (value == null) {
          unsetCheckConstraints();
        } else {
          setCheckConstraints((java.util.List<SQLCheckConstraint>)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case TBL:
        return getTbl();

      case PRIMARY_KEYS:
        return getPrimaryKeys();

      case FOREIGN_KEYS:
        return getForeignKeys();

      case UNIQUE_CONSTRAINTS:
        return getUniqueConstraints();

      case NOT_NULL_CONSTRAINTS:
        return getNotNullConstraints();

      case DEFAULT_CONSTRAINTS:
        return getDefaultConstraints();

      case CHECK_CONSTRAINTS:
        return getCheckConstraints();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case TBL:
        return isSetTbl();
      case PRIMARY_KEYS:
        return isSetPrimaryKeys();
      case FOREIGN_KEYS:
        return isSetForeignKeys();
      case UNIQUE_CONSTRAINTS:
        return isSetUniqueConstraints();
      case NOT_NULL_CONSTRAINTS:
        return isSetNotNullConstraints();
      case DEFAULT_CONSTRAINTS:
        return isSetDefaultConstraints();
      case CHECK_CONSTRAINTS:
        return isSetCheckConstraints();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof create_table_with_constraints_args)
        return this.equals((create_table_with_constraints_args)that);
      return false;
    }

    public boolean equals(create_table_with_constraints_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_tbl = true && this.isSetTbl();
      boolean that_present_tbl = true && that.isSetTbl();
      if (this_present_tbl || that_present_tbl) {
        if (!(this_present_tbl && that_present_tbl))
          return false;
        if (!this.tbl.equals(that.tbl))
          return false;
      }

      boolean this_present_primaryKeys = true && this.isSetPrimaryKeys();
      boolean that_present_primaryKeys = true && that.isSetPrimaryKeys();
      if (this_present_primaryKeys || that_present_primaryKeys) {
        if (!(this_present_primaryKeys && that_present_primaryKeys))
          return false;
        if (!this.primaryKeys.equals(that.primaryKeys))
          return false;
      }

      boolean this_present_foreignKeys = true && this.isSetForeignKeys();
      boolean that_present_foreignKeys = true && that.isSetForeignKeys();
      if (this_present_foreignKeys || that_present_foreignKeys) {
        if (!(this_present_foreignKeys && that_present_foreignKeys))
          return false;
        if (!this.foreignKeys.equals(that.foreignKeys))
          return false;
      }

      boolean this_present_uniqueConstraints = true && this.isSetUniqueConstraints();
      boolean that_present_uniqueConstraints = true && that.isSetUniqueConstraints();
      if (this_present_uniqueConstraints || that_present_uniqueConstraints) {
        if (!(this_present_uniqueConstraints && that_present_uniqueConstraints))
          return false;
        if (!this.uniqueConstraints.equals(that.uniqueConstraints))
          return false;
      }

      boolean this_present_notNullConstraints = true && this.isSetNotNullConstraints();
      boolean that_present_notNullConstraints = true && that.isSetNotNullConstraints();
      if (this_present_notNullConstraints || that_present_notNullConstraints) {
        if (!(this_present_notNullConstraints && that_present_notNullConstraints))
          return false;
        if (!this.notNullConstraints.equals(that.notNullConstraints))
          return false;
      }

      boolean this_present_defaultConstraints = true && this.isSetDefaultConstraints();
      boolean that_present_defaultConstraints = true && that.isSetDefaultConstraints();
      if (this_present_defaultConstraints || that_present_defaultConstraints) {
        if (!(this_present_defaultConstraints && that_present_defaultConstraints))
          return false;
        if (!this.defaultConstraints.equals(that.defaultConstraints))
          return false;
      }

      boolean this_present_checkConstraints = true && this.isSetCheckConstraints();
      boolean that_present_checkConstraints = true && that.isSetCheckConstraints();
      if (this_present_checkConstraints || that_present_checkConstraints) {
        if (!(this_present_checkConstraints && that_present_checkConstraints))
          return false;
        if (!this.checkConstraints.equals(that.checkConstraints))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetTbl()) ? 131071 : 524287);
      if (isSetTbl())
        hashCode = hashCode * 8191 + tbl.hashCode();

      hashCode = hashCode * 8191 + ((isSetPrimaryKeys()) ? 131071 : 524287);
      if (isSetPrimaryKeys())
        hashCode = hashCode * 8191 + primaryKeys.hashCode();

      hashCode = hashCode * 8191 + ((isSetForeignKeys()) ? 131071 : 524287);
      if (isSetForeignKeys())
        hashCode = hashCode * 8191 + foreignKeys.hashCode();

      hashCode = hashCode * 8191 + ((isSetUniqueConstraints()) ? 131071 : 524287);
      if (isSetUniqueConstraints())
        hashCode = hashCode * 8191 + uniqueConstraints.hashCode();

      hashCode = hashCode * 8191 + ((isSetNotNullConstraints()) ? 131071 : 524287);
      if (isSetNotNullConstraints())
        hashCode = hashCode * 8191 + notNullConstraints.hashCode();

      hashCode = hashCode * 8191 + ((isSetDefaultConstraints()) ? 131071 : 524287);
      if (isSetDefaultConstraints())
        hashCode = hashCode * 8191 + defaultConstraints.hashCode();

      hashCode = hashCode * 8191 + ((isSetCheckConstraints()) ? 131071 : 524287);
      if (isSetCheckConstraints())
        hashCode = hashCode * 8191 + checkConstraints.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(create_table_with_constraints_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetTbl(), other.isSetTbl());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl, other.tbl);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetPrimaryKeys(), other.isSetPrimaryKeys());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPrimaryKeys()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.primaryKeys, other.primaryKeys);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetForeignKeys(), other.isSetForeignKeys());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetForeignKeys()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.foreignKeys, other.foreignKeys);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetUniqueConstraints(), other.isSetUniqueConstraints());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUniqueConstraints()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.uniqueConstraints, other.uniqueConstraints);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetNotNullConstraints(), other.isSetNotNullConstraints());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetNotNullConstraints()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.notNullConstraints, other.notNullConstraints);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetDefaultConstraints(), other.isSetDefaultConstraints());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDefaultConstraints()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.defaultConstraints, other.defaultConstraints);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetCheckConstraints(), other.isSetCheckConstraints());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetCheckConstraints()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.checkConstraints, other.checkConstraints);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("create_table_with_constraints_args(");
      boolean first = true;

      sb.append("tbl:");
      if (this.tbl == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("primaryKeys:");
      if (this.primaryKeys == null) {
        sb.append("null");
      } else {
        sb.append(this.primaryKeys);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("foreignKeys:");
      if (this.foreignKeys == null) {
        sb.append("null");
      } else {
        sb.append(this.foreignKeys);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("uniqueConstraints:");
      if (this.uniqueConstraints == null) {
        sb.append("null");
      } else {
        sb.append(this.uniqueConstraints);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("notNullConstraints:");
      if (this.notNullConstraints == null) {
        sb.append("null");
      } else {
        sb.append(this.notNullConstraints);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("defaultConstraints:");
      if (this.defaultConstraints == null) {
        sb.append("null");
      } else {
        sb.append(this.defaultConstraints);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("checkConstraints:");
      if (this.checkConstraints == null) {
        sb.append("null");
      } else {
        sb.append(this.checkConstraints);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (tbl != null) {
        tbl.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class create_table_with_constraints_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_table_with_constraints_argsStandardScheme getScheme() {
        return new create_table_with_constraints_argsStandardScheme();
      }
    }

    private static class create_table_with_constraints_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<create_table_with_constraints_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, create_table_with_constraints_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // TBL
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.tbl = new Table();
                struct.tbl.read(iprot);
                struct.setTblIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // PRIMARY_KEYS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list978 = iprot.readListBegin();
                  struct.primaryKeys = new java.util.ArrayList<SQLPrimaryKey>(_list978.size);
                  @org.apache.thrift.annotation.Nullable SQLPrimaryKey _elem979;
                  for (int _i980 = 0; _i980 < _list978.size; ++_i980)
                  {
                    _elem979 = new SQLPrimaryKey();
                    _elem979.read(iprot);
                    struct.primaryKeys.add(_elem979);
                  }
                  iprot.readListEnd();
                }
                struct.setPrimaryKeysIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // FOREIGN_KEYS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list981 = iprot.readListBegin();
                  struct.foreignKeys = new java.util.ArrayList<SQLForeignKey>(_list981.size);
                  @org.apache.thrift.annotation.Nullable SQLForeignKey _elem982;
                  for (int _i983 = 0; _i983 < _list981.size; ++_i983)
                  {
                    _elem982 = new SQLForeignKey();
                    _elem982.read(iprot);
                    struct.foreignKeys.add(_elem982);
                  }
                  iprot.readListEnd();
                }
                struct.setForeignKeysIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // UNIQUE_CONSTRAINTS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list984 = iprot.readListBegin();
                  struct.uniqueConstraints = new java.util.ArrayList<SQLUniqueConstraint>(_list984.size);
                  @org.apache.thrift.annotation.Nullable SQLUniqueConstraint _elem985;
                  for (int _i986 = 0; _i986 < _list984.size; ++_i986)
                  {
                    _elem985 = new SQLUniqueConstraint();
                    _elem985.read(iprot);
                    struct.uniqueConstraints.add(_elem985);
                  }
                  iprot.readListEnd();
                }
                struct.setUniqueConstraintsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // NOT_NULL_CONSTRAINTS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list987 = iprot.readListBegin();
                  struct.notNullConstraints = new java.util.ArrayList<SQLNotNullConstraint>(_list987.size);
                  @org.apache.thrift.annotation.Nullable SQLNotNullConstraint _elem988;
                  for (int _i989 = 0; _i989 < _list987.size; ++_i989)
                  {
                    _elem988 = new SQLNotNullConstraint();
                    _elem988.read(iprot);
                    struct.notNullConstraints.add(_elem988);
                  }
                  iprot.readListEnd();
                }
                struct.setNotNullConstraintsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 6: // DEFAULT_CONSTRAINTS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list990 = iprot.readListBegin();
                  struct.defaultConstraints = new java.util.ArrayList<SQLDefaultConstraint>(_list990.size);
                  @org.apache.thrift.annotation.Nullable SQLDefaultConstraint _elem991;
                  for (int _i992 = 0; _i992 < _list990.size; ++_i992)
                  {
                    _elem991 = new SQLDefaultConstraint();
                    _elem991.read(iprot);
                    struct.defaultConstraints.add(_elem991);
                  }
                  iprot.readListEnd();
                }
                struct.setDefaultConstraintsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 7: // CHECK_CONSTRAINTS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list993 = iprot.readListBegin();
                  struct.checkConstraints = new java.util.ArrayList<SQLCheckConstraint>(_list993.size);
                  @org.apache.thrift.annotation.Nullable SQLCheckConstraint _elem994;
                  for (int _i995 = 0; _i995 < _list993.size; ++_i995)
                  {
                    _elem994 = new SQLCheckConstraint();
                    _elem994.read(iprot);
                    struct.checkConstraints.add(_elem994);
                  }
                  iprot.readListEnd();
                }
                struct.setCheckConstraintsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, create_table_with_constraints_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.tbl != null) {
          oprot.writeFieldBegin(TBL_FIELD_DESC);
          struct.tbl.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.primaryKeys != null) {
          oprot.writeFieldBegin(PRIMARY_KEYS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.primaryKeys.size()));
            for (SQLPrimaryKey _iter996 : struct.primaryKeys)
            {
              _iter996.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.foreignKeys != null) {
          oprot.writeFieldBegin(FOREIGN_KEYS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.foreignKeys.size()));
            for (SQLForeignKey _iter997 : struct.foreignKeys)
            {
              _iter997.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.uniqueConstraints != null) {
          oprot.writeFieldBegin(UNIQUE_CONSTRAINTS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.uniqueConstraints.size()));
            for (SQLUniqueConstraint _iter998 : struct.uniqueConstraints)
            {
              _iter998.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.notNullConstraints != null) {
          oprot.writeFieldBegin(NOT_NULL_CONSTRAINTS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.notNullConstraints.size()));
            for (SQLNotNullConstraint _iter999 : struct.notNullConstraints)
            {
              _iter999.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.defaultConstraints != null) {
          oprot.writeFieldBegin(DEFAULT_CONSTRAINTS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.defaultConstraints.size()));
            for (SQLDefaultConstraint _iter1000 : struct.defaultConstraints)
            {
              _iter1000.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.checkConstraints != null) {
          oprot.writeFieldBegin(CHECK_CONSTRAINTS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.checkConstraints.size()));
            for (SQLCheckConstraint _iter1001 : struct.checkConstraints)
            {
              _iter1001.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class create_table_with_constraints_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_table_with_constraints_argsTupleScheme getScheme() {
        return new create_table_with_constraints_argsTupleScheme();
      }
    }

    private static class create_table_with_constraints_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<create_table_with_constraints_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, create_table_with_constraints_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetTbl()) {
          optionals.set(0);
        }
        if (struct.isSetPrimaryKeys()) {
          optionals.set(1);
        }
        if (struct.isSetForeignKeys()) {
          optionals.set(2);
        }
        if (struct.isSetUniqueConstraints()) {
          optionals.set(3);
        }
        if (struct.isSetNotNullConstraints()) {
          optionals.set(4);
        }
        if (struct.isSetDefaultConstraints()) {
          optionals.set(5);
        }
        if (struct.isSetCheckConstraints()) {
          optionals.set(6);
        }
        oprot.writeBitSet(optionals, 7);
        if (struct.isSetTbl()) {
          struct.tbl.write(oprot);
        }
        if (struct.isSetPrimaryKeys()) {
          {
            oprot.writeI32(struct.primaryKeys.size());
            for (SQLPrimaryKey _iter1002 : struct.primaryKeys)
            {
              _iter1002.write(oprot);
            }
          }
        }
        if (struct.isSetForeignKeys()) {
          {
            oprot.writeI32(struct.foreignKeys.size());
            for (SQLForeignKey _iter1003 : struct.foreignKeys)
            {
              _iter1003.write(oprot);
            }
          }
        }
        if (struct.isSetUniqueConstraints()) {
          {
            oprot.writeI32(struct.uniqueConstraints.size());
            for (SQLUniqueConstraint _iter1004 : struct.uniqueConstraints)
            {
              _iter1004.write(oprot);
            }
          }
        }
        if (struct.isSetNotNullConstraints()) {
          {
            oprot.writeI32(struct.notNullConstraints.size());
            for (SQLNotNullConstraint _iter1005 : struct.notNullConstraints)
            {
              _iter1005.write(oprot);
            }
          }
        }
        if (struct.isSetDefaultConstraints()) {
          {
            oprot.writeI32(struct.defaultConstraints.size());
            for (SQLDefaultConstraint _iter1006 : struct.defaultConstraints)
            {
              _iter1006.write(oprot);
            }
          }
        }
        if (struct.isSetCheckConstraints()) {
          {
            oprot.writeI32(struct.checkConstraints.size());
            for (SQLCheckConstraint _iter1007 : struct.checkConstraints)
            {
              _iter1007.write(oprot);
            }
          }
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, create_table_with_constraints_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(7);
        if (incoming.get(0)) {
          struct.tbl = new Table();
          struct.tbl.read(iprot);
          struct.setTblIsSet(true);
        }
        if (incoming.get(1)) {
          {
            org.apache.thrift.protocol.TList _list1008 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
            struct.primaryKeys = new java.util.ArrayList<SQLPrimaryKey>(_list1008.size);
            @org.apache.thrift.annotation.Nullable SQLPrimaryKey _elem1009;
            for (int _i1010 = 0; _i1010 < _list1008.size; ++_i1010)
            {
              _elem1009 = new SQLPrimaryKey();
              _elem1009.read(iprot);
              struct.primaryKeys.add(_elem1009);
            }
          }
          struct.setPrimaryKeysIsSet(true);
        }
        if (incoming.get(2)) {
          {
            org.apache.thrift.protocol.TList _list1011 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
            struct.foreignKeys = new java.util.ArrayList<SQLForeignKey>(_list1011.size);
            @org.apache.thrift.annotation.Nullable SQLForeignKey _elem1012;
            for (int _i1013 = 0; _i1013 < _list1011.size; ++_i1013)
            {
              _elem1012 = new SQLForeignKey();
              _elem1012.read(iprot);
              struct.foreignKeys.add(_elem1012);
            }
          }
          struct.setForeignKeysIsSet(true);
        }
        if (incoming.get(3)) {
          {
            org.apache.thrift.protocol.TList _list1014 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
            struct.uniqueConstraints = new java.util.ArrayList<SQLUniqueConstraint>(_list1014.size);
            @org.apache.thrift.annotation.Nullable SQLUniqueConstraint _elem1015;
            for (int _i1016 = 0; _i1016 < _list1014.size; ++_i1016)
            {
              _elem1015 = new SQLUniqueConstraint();
              _elem1015.read(iprot);
              struct.uniqueConstraints.add(_elem1015);
            }
          }
          struct.setUniqueConstraintsIsSet(true);
        }
        if (incoming.get(4)) {
          {
            org.apache.thrift.protocol.TList _list1017 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
            struct.notNullConstraints = new java.util.ArrayList<SQLNotNullConstraint>(_list1017.size);
            @org.apache.thrift.annotation.Nullable SQLNotNullConstraint _elem1018;
            for (int _i1019 = 0; _i1019 < _list1017.size; ++_i1019)
            {
              _elem1018 = new SQLNotNullConstraint();
              _elem1018.read(iprot);
              struct.notNullConstraints.add(_elem1018);
            }
          }
          struct.setNotNullConstraintsIsSet(true);
        }
        if (incoming.get(5)) {
          {
            org.apache.thrift.protocol.TList _list1020 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
            struct.defaultConstraints = new java.util.ArrayList<SQLDefaultConstraint>(_list1020.size);
            @org.apache.thrift.annotation.Nullable SQLDefaultConstraint _elem1021;
            for (int _i1022 = 0; _i1022 < _list1020.size; ++_i1022)
            {
              _elem1021 = new SQLDefaultConstraint();
              _elem1021.read(iprot);
              struct.defaultConstraints.add(_elem1021);
            }
          }
          struct.setDefaultConstraintsIsSet(true);
        }
        if (incoming.get(6)) {
          {
            org.apache.thrift.protocol.TList _list1023 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
            struct.checkConstraints = new java.util.ArrayList<SQLCheckConstraint>(_list1023.size);
            @org.apache.thrift.annotation.Nullable SQLCheckConstraint _elem1024;
            for (int _i1025 = 0; _i1025 < _list1023.size; ++_i1025)
            {
              _elem1024 = new SQLCheckConstraint();
              _elem1024.read(iprot);
              struct.checkConstraints.add(_elem1024);
            }
          }
          struct.setCheckConstraintsIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_table_with_constraints_result implements org.apache.thrift.TBase<create_table_with_constraints_result, create_table_with_constraints_result._Fields>, java.io.Serializable, Cloneable, Comparable<create_table_with_constraints_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("create_table_with_constraints_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField O4_FIELD_DESC = new org.apache.thrift.protocol.TField("o4", org.apache.thrift.protocol.TType.STRUCT, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new create_table_with_constraints_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new create_table_with_constraints_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable AlreadyExistsException o1; // required
    private @org.apache.thrift.annotation.Nullable InvalidObjectException o2; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o4; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3"),
      O4((short)4, "o4");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          case 4: // O4
            return O4;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AlreadyExistsException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidObjectException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O4, new org.apache.thrift.meta_data.FieldMetaData("o4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(create_table_with_constraints_result.class, metaDataMap);
    }

    public create_table_with_constraints_result() {
    }

    public create_table_with_constraints_result(
      AlreadyExistsException o1,
      InvalidObjectException o2,
      MetaException o3,
      NoSuchObjectException o4)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
      this.o4 = o4;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public create_table_with_constraints_result(create_table_with_constraints_result other) {
      if (other.isSetO1()) {
        this.o1 = new AlreadyExistsException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new InvalidObjectException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
      if (other.isSetO4()) {
        this.o4 = new NoSuchObjectException(other.o4);
      }
    }

    public create_table_with_constraints_result deepCopy() {
      return new create_table_with_constraints_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
      this.o4 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public AlreadyExistsException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable AlreadyExistsException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable InvalidObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO4() {
      return this.o4;
    }

    public void setO4(@org.apache.thrift.annotation.Nullable NoSuchObjectException o4) {
      this.o4 = o4;
    }

    public void unsetO4() {
      this.o4 = null;
    }

    /** Returns true if field o4 is set (has been assigned a value) and false otherwise */
    public boolean isSetO4() {
      return this.o4 != null;
    }

    public void setO4IsSet(boolean value) {
      if (!value) {
        this.o4 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((AlreadyExistsException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((InvalidObjectException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      case O4:
        if (value == null) {
          unsetO4();
        } else {
          setO4((NoSuchObjectException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      case O4:
        return getO4();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      case O4:
        return isSetO4();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof create_table_with_constraints_result)
        return this.equals((create_table_with_constraints_result)that);
      return false;
    }

    public boolean equals(create_table_with_constraints_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      boolean this_present_o4 = true && this.isSetO4();
      boolean that_present_o4 = true && that.isSetO4();
      if (this_present_o4 || that_present_o4) {
        if (!(this_present_o4 && that_present_o4))
          return false;
        if (!this.o4.equals(that.o4))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      hashCode = hashCode * 8191 + ((isSetO4()) ? 131071 : 524287);
      if (isSetO4())
        hashCode = hashCode * 8191 + o4.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(create_table_with_constraints_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO4(), other.isSetO4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o4, other.o4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("create_table_with_constraints_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o4:");
      if (this.o4 == null) {
        sb.append("null");
      } else {
        sb.append(this.o4);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class create_table_with_constraints_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_table_with_constraints_resultStandardScheme getScheme() {
        return new create_table_with_constraints_resultStandardScheme();
      }
    }

    private static class create_table_with_constraints_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<create_table_with_constraints_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, create_table_with_constraints_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new AlreadyExistsException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new InvalidObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // O4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o4 = new NoSuchObjectException();
                struct.o4.read(iprot);
                struct.setO4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, create_table_with_constraints_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o4 != null) {
          oprot.writeFieldBegin(O4_FIELD_DESC);
          struct.o4.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class create_table_with_constraints_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_table_with_constraints_resultTupleScheme getScheme() {
        return new create_table_with_constraints_resultTupleScheme();
      }
    }

    private static class create_table_with_constraints_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<create_table_with_constraints_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, create_table_with_constraints_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        if (struct.isSetO3()) {
          optionals.set(2);
        }
        if (struct.isSetO4()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
        if (struct.isSetO4()) {
          struct.o4.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, create_table_with_constraints_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.o1 = new AlreadyExistsException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new InvalidObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o4 = new NoSuchObjectException();
          struct.o4.read(iprot);
          struct.setO4IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_constraint_args implements org.apache.thrift.TBase<drop_constraint_args, drop_constraint_args._Fields>, java.io.Serializable, Cloneable, Comparable<drop_constraint_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_constraint_args");

    private static final org.apache.thrift.protocol.TField REQ_FIELD_DESC = new org.apache.thrift.protocol.TField("req", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_constraint_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_constraint_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable DropConstraintRequest req; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQ((short)1, "req");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQ
            return REQ;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQ, new org.apache.thrift.meta_data.FieldMetaData("req", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, DropConstraintRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_constraint_args.class, metaDataMap);
    }

    public drop_constraint_args() {
    }

    public drop_constraint_args(
      DropConstraintRequest req)
    {
      this();
      this.req = req;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_constraint_args(drop_constraint_args other) {
      if (other.isSetReq()) {
        this.req = new DropConstraintRequest(other.req);
      }
    }

    public drop_constraint_args deepCopy() {
      return new drop_constraint_args(this);
    }

    @Override
    public void clear() {
      this.req = null;
    }

    @org.apache.thrift.annotation.Nullable
    public DropConstraintRequest getReq() {
      return this.req;
    }

    public void setReq(@org.apache.thrift.annotation.Nullable DropConstraintRequest req) {
      this.req = req;
    }

    public void unsetReq() {
      this.req = null;
    }

    /** Returns true if field req is set (has been assigned a value) and false otherwise */
    public boolean isSetReq() {
      return this.req != null;
    }

    public void setReqIsSet(boolean value) {
      if (!value) {
        this.req = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQ:
        if (value == null) {
          unsetReq();
        } else {
          setReq((DropConstraintRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQ:
        return getReq();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQ:
        return isSetReq();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_constraint_args)
        return this.equals((drop_constraint_args)that);
      return false;
    }

    public boolean equals(drop_constraint_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_req = true && this.isSetReq();
      boolean that_present_req = true && that.isSetReq();
      if (this_present_req || that_present_req) {
        if (!(this_present_req && that_present_req))
          return false;
        if (!this.req.equals(that.req))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetReq()) ? 131071 : 524287);
      if (isSetReq())
        hashCode = hashCode * 8191 + req.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(drop_constraint_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetReq(), other.isSetReq());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetReq()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.req, other.req);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_constraint_args(");
      boolean first = true;

      sb.append("req:");
      if (this.req == null) {
        sb.append("null");
      } else {
        sb.append(this.req);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (req != null) {
        req.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_constraint_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_constraint_argsStandardScheme getScheme() {
        return new drop_constraint_argsStandardScheme();
      }
    }

    private static class drop_constraint_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_constraint_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_constraint_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQ
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.req = new DropConstraintRequest();
                struct.req.read(iprot);
                struct.setReqIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_constraint_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.req != null) {
          oprot.writeFieldBegin(REQ_FIELD_DESC);
          struct.req.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_constraint_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_constraint_argsTupleScheme getScheme() {
        return new drop_constraint_argsTupleScheme();
      }
    }

    private static class drop_constraint_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_constraint_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_constraint_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetReq()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetReq()) {
          struct.req.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_constraint_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.req = new DropConstraintRequest();
          struct.req.read(iprot);
          struct.setReqIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_constraint_result implements org.apache.thrift.TBase<drop_constraint_result, drop_constraint_result._Fields>, java.io.Serializable, Cloneable, Comparable<drop_constraint_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_constraint_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_constraint_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_constraint_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O3((short)2, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_constraint_result.class, metaDataMap);
    }

    public drop_constraint_result() {
    }

    public drop_constraint_result(
      NoSuchObjectException o1,
      MetaException o3)
    {
      this();
      this.o1 = o1;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_constraint_result(drop_constraint_result other) {
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
    }

    public drop_constraint_result deepCopy() {
      return new drop_constraint_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o3 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_constraint_result)
        return this.equals((drop_constraint_result)that);
      return false;
    }

    public boolean equals(drop_constraint_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(drop_constraint_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_constraint_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_constraint_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_constraint_resultStandardScheme getScheme() {
        return new drop_constraint_resultStandardScheme();
      }
    }

    private static class drop_constraint_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_constraint_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_constraint_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_constraint_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_constraint_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_constraint_resultTupleScheme getScheme() {
        return new drop_constraint_resultTupleScheme();
      }
    }

    private static class drop_constraint_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_constraint_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_constraint_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO3()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_constraint_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_primary_key_args implements org.apache.thrift.TBase<add_primary_key_args, add_primary_key_args._Fields>, java.io.Serializable, Cloneable, Comparable<add_primary_key_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("add_primary_key_args");

    private static final org.apache.thrift.protocol.TField REQ_FIELD_DESC = new org.apache.thrift.protocol.TField("req", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new add_primary_key_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new add_primary_key_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable AddPrimaryKeyRequest req; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQ((short)1, "req");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQ
            return REQ;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQ, new org.apache.thrift.meta_data.FieldMetaData("req", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AddPrimaryKeyRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(add_primary_key_args.class, metaDataMap);
    }

    public add_primary_key_args() {
    }

    public add_primary_key_args(
      AddPrimaryKeyRequest req)
    {
      this();
      this.req = req;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public add_primary_key_args(add_primary_key_args other) {
      if (other.isSetReq()) {
        this.req = new AddPrimaryKeyRequest(other.req);
      }
    }

    public add_primary_key_args deepCopy() {
      return new add_primary_key_args(this);
    }

    @Override
    public void clear() {
      this.req = null;
    }

    @org.apache.thrift.annotation.Nullable
    public AddPrimaryKeyRequest getReq() {
      return this.req;
    }

    public void setReq(@org.apache.thrift.annotation.Nullable AddPrimaryKeyRequest req) {
      this.req = req;
    }

    public void unsetReq() {
      this.req = null;
    }

    /** Returns true if field req is set (has been assigned a value) and false otherwise */
    public boolean isSetReq() {
      return this.req != null;
    }

    public void setReqIsSet(boolean value) {
      if (!value) {
        this.req = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQ:
        if (value == null) {
          unsetReq();
        } else {
          setReq((AddPrimaryKeyRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQ:
        return getReq();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQ:
        return isSetReq();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof add_primary_key_args)
        return this.equals((add_primary_key_args)that);
      return false;
    }

    public boolean equals(add_primary_key_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_req = true && this.isSetReq();
      boolean that_present_req = true && that.isSetReq();
      if (this_present_req || that_present_req) {
        if (!(this_present_req && that_present_req))
          return false;
        if (!this.req.equals(that.req))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetReq()) ? 131071 : 524287);
      if (isSetReq())
        hashCode = hashCode * 8191 + req.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(add_primary_key_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetReq(), other.isSetReq());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetReq()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.req, other.req);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("add_primary_key_args(");
      boolean first = true;

      sb.append("req:");
      if (this.req == null) {
        sb.append("null");
      } else {
        sb.append(this.req);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (req != null) {
        req.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class add_primary_key_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_primary_key_argsStandardScheme getScheme() {
        return new add_primary_key_argsStandardScheme();
      }
    }

    private static class add_primary_key_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<add_primary_key_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, add_primary_key_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQ
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.req = new AddPrimaryKeyRequest();
                struct.req.read(iprot);
                struct.setReqIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, add_primary_key_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.req != null) {
          oprot.writeFieldBegin(REQ_FIELD_DESC);
          struct.req.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class add_primary_key_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_primary_key_argsTupleScheme getScheme() {
        return new add_primary_key_argsTupleScheme();
      }
    }

    private static class add_primary_key_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<add_primary_key_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, add_primary_key_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetReq()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetReq()) {
          struct.req.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, add_primary_key_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.req = new AddPrimaryKeyRequest();
          struct.req.read(iprot);
          struct.setReqIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_primary_key_result implements org.apache.thrift.TBase<add_primary_key_result, add_primary_key_result._Fields>, java.io.Serializable, Cloneable, Comparable<add_primary_key_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("add_primary_key_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new add_primary_key_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new add_primary_key_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(add_primary_key_result.class, metaDataMap);
    }

    public add_primary_key_result() {
    }

    public add_primary_key_result(
      NoSuchObjectException o1,
      MetaException o2)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public add_primary_key_result(add_primary_key_result other) {
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public add_primary_key_result deepCopy() {
      return new add_primary_key_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof add_primary_key_result)
        return this.equals((add_primary_key_result)that);
      return false;
    }

    public boolean equals(add_primary_key_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(add_primary_key_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("add_primary_key_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class add_primary_key_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_primary_key_resultStandardScheme getScheme() {
        return new add_primary_key_resultStandardScheme();
      }
    }

    private static class add_primary_key_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<add_primary_key_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, add_primary_key_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, add_primary_key_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class add_primary_key_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_primary_key_resultTupleScheme getScheme() {
        return new add_primary_key_resultTupleScheme();
      }
    }

    private static class add_primary_key_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<add_primary_key_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, add_primary_key_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, add_primary_key_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_foreign_key_args implements org.apache.thrift.TBase<add_foreign_key_args, add_foreign_key_args._Fields>, java.io.Serializable, Cloneable, Comparable<add_foreign_key_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("add_foreign_key_args");

    private static final org.apache.thrift.protocol.TField REQ_FIELD_DESC = new org.apache.thrift.protocol.TField("req", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new add_foreign_key_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new add_foreign_key_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable AddForeignKeyRequest req; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQ((short)1, "req");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQ
            return REQ;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQ, new org.apache.thrift.meta_data.FieldMetaData("req", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AddForeignKeyRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(add_foreign_key_args.class, metaDataMap);
    }

    public add_foreign_key_args() {
    }

    public add_foreign_key_args(
      AddForeignKeyRequest req)
    {
      this();
      this.req = req;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public add_foreign_key_args(add_foreign_key_args other) {
      if (other.isSetReq()) {
        this.req = new AddForeignKeyRequest(other.req);
      }
    }

    public add_foreign_key_args deepCopy() {
      return new add_foreign_key_args(this);
    }

    @Override
    public void clear() {
      this.req = null;
    }

    @org.apache.thrift.annotation.Nullable
    public AddForeignKeyRequest getReq() {
      return this.req;
    }

    public void setReq(@org.apache.thrift.annotation.Nullable AddForeignKeyRequest req) {
      this.req = req;
    }

    public void unsetReq() {
      this.req = null;
    }

    /** Returns true if field req is set (has been assigned a value) and false otherwise */
    public boolean isSetReq() {
      return this.req != null;
    }

    public void setReqIsSet(boolean value) {
      if (!value) {
        this.req = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQ:
        if (value == null) {
          unsetReq();
        } else {
          setReq((AddForeignKeyRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQ:
        return getReq();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQ:
        return isSetReq();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof add_foreign_key_args)
        return this.equals((add_foreign_key_args)that);
      return false;
    }

    public boolean equals(add_foreign_key_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_req = true && this.isSetReq();
      boolean that_present_req = true && that.isSetReq();
      if (this_present_req || that_present_req) {
        if (!(this_present_req && that_present_req))
          return false;
        if (!this.req.equals(that.req))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetReq()) ? 131071 : 524287);
      if (isSetReq())
        hashCode = hashCode * 8191 + req.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(add_foreign_key_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetReq(), other.isSetReq());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetReq()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.req, other.req);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("add_foreign_key_args(");
      boolean first = true;

      sb.append("req:");
      if (this.req == null) {
        sb.append("null");
      } else {
        sb.append(this.req);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (req != null) {
        req.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class add_foreign_key_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_foreign_key_argsStandardScheme getScheme() {
        return new add_foreign_key_argsStandardScheme();
      }
    }

    private static class add_foreign_key_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<add_foreign_key_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, add_foreign_key_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQ
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.req = new AddForeignKeyRequest();
                struct.req.read(iprot);
                struct.setReqIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, add_foreign_key_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.req != null) {
          oprot.writeFieldBegin(REQ_FIELD_DESC);
          struct.req.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class add_foreign_key_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_foreign_key_argsTupleScheme getScheme() {
        return new add_foreign_key_argsTupleScheme();
      }
    }

    private static class add_foreign_key_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<add_foreign_key_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, add_foreign_key_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetReq()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetReq()) {
          struct.req.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, add_foreign_key_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.req = new AddForeignKeyRequest();
          struct.req.read(iprot);
          struct.setReqIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_foreign_key_result implements org.apache.thrift.TBase<add_foreign_key_result, add_foreign_key_result._Fields>, java.io.Serializable, Cloneable, Comparable<add_foreign_key_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("add_foreign_key_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new add_foreign_key_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new add_foreign_key_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(add_foreign_key_result.class, metaDataMap);
    }

    public add_foreign_key_result() {
    }

    public add_foreign_key_result(
      NoSuchObjectException o1,
      MetaException o2)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public add_foreign_key_result(add_foreign_key_result other) {
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public add_foreign_key_result deepCopy() {
      return new add_foreign_key_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof add_foreign_key_result)
        return this.equals((add_foreign_key_result)that);
      return false;
    }

    public boolean equals(add_foreign_key_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(add_foreign_key_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("add_foreign_key_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class add_foreign_key_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_foreign_key_resultStandardScheme getScheme() {
        return new add_foreign_key_resultStandardScheme();
      }
    }

    private static class add_foreign_key_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<add_foreign_key_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, add_foreign_key_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, add_foreign_key_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class add_foreign_key_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_foreign_key_resultTupleScheme getScheme() {
        return new add_foreign_key_resultTupleScheme();
      }
    }

    private static class add_foreign_key_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<add_foreign_key_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, add_foreign_key_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, add_foreign_key_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_unique_constraint_args implements org.apache.thrift.TBase<add_unique_constraint_args, add_unique_constraint_args._Fields>, java.io.Serializable, Cloneable, Comparable<add_unique_constraint_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("add_unique_constraint_args");

    private static final org.apache.thrift.protocol.TField REQ_FIELD_DESC = new org.apache.thrift.protocol.TField("req", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new add_unique_constraint_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new add_unique_constraint_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable AddUniqueConstraintRequest req; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQ((short)1, "req");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQ
            return REQ;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQ, new org.apache.thrift.meta_data.FieldMetaData("req", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AddUniqueConstraintRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(add_unique_constraint_args.class, metaDataMap);
    }

    public add_unique_constraint_args() {
    }

    public add_unique_constraint_args(
      AddUniqueConstraintRequest req)
    {
      this();
      this.req = req;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public add_unique_constraint_args(add_unique_constraint_args other) {
      if (other.isSetReq()) {
        this.req = new AddUniqueConstraintRequest(other.req);
      }
    }

    public add_unique_constraint_args deepCopy() {
      return new add_unique_constraint_args(this);
    }

    @Override
    public void clear() {
      this.req = null;
    }

    @org.apache.thrift.annotation.Nullable
    public AddUniqueConstraintRequest getReq() {
      return this.req;
    }

    public void setReq(@org.apache.thrift.annotation.Nullable AddUniqueConstraintRequest req) {
      this.req = req;
    }

    public void unsetReq() {
      this.req = null;
    }

    /** Returns true if field req is set (has been assigned a value) and false otherwise */
    public boolean isSetReq() {
      return this.req != null;
    }

    public void setReqIsSet(boolean value) {
      if (!value) {
        this.req = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQ:
        if (value == null) {
          unsetReq();
        } else {
          setReq((AddUniqueConstraintRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQ:
        return getReq();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQ:
        return isSetReq();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof add_unique_constraint_args)
        return this.equals((add_unique_constraint_args)that);
      return false;
    }

    public boolean equals(add_unique_constraint_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_req = true && this.isSetReq();
      boolean that_present_req = true && that.isSetReq();
      if (this_present_req || that_present_req) {
        if (!(this_present_req && that_present_req))
          return false;
        if (!this.req.equals(that.req))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetReq()) ? 131071 : 524287);
      if (isSetReq())
        hashCode = hashCode * 8191 + req.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(add_unique_constraint_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetReq(), other.isSetReq());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetReq()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.req, other.req);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("add_unique_constraint_args(");
      boolean first = true;

      sb.append("req:");
      if (this.req == null) {
        sb.append("null");
      } else {
        sb.append(this.req);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (req != null) {
        req.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class add_unique_constraint_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_unique_constraint_argsStandardScheme getScheme() {
        return new add_unique_constraint_argsStandardScheme();
      }
    }

    private static class add_unique_constraint_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<add_unique_constraint_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, add_unique_constraint_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQ
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.req = new AddUniqueConstraintRequest();
                struct.req.read(iprot);
                struct.setReqIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, add_unique_constraint_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.req != null) {
          oprot.writeFieldBegin(REQ_FIELD_DESC);
          struct.req.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class add_unique_constraint_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_unique_constraint_argsTupleScheme getScheme() {
        return new add_unique_constraint_argsTupleScheme();
      }
    }

    private static class add_unique_constraint_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<add_unique_constraint_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, add_unique_constraint_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetReq()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetReq()) {
          struct.req.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, add_unique_constraint_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.req = new AddUniqueConstraintRequest();
          struct.req.read(iprot);
          struct.setReqIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_unique_constraint_result implements org.apache.thrift.TBase<add_unique_constraint_result, add_unique_constraint_result._Fields>, java.io.Serializable, Cloneable, Comparable<add_unique_constraint_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("add_unique_constraint_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new add_unique_constraint_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new add_unique_constraint_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(add_unique_constraint_result.class, metaDataMap);
    }

    public add_unique_constraint_result() {
    }

    public add_unique_constraint_result(
      NoSuchObjectException o1,
      MetaException o2)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public add_unique_constraint_result(add_unique_constraint_result other) {
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public add_unique_constraint_result deepCopy() {
      return new add_unique_constraint_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof add_unique_constraint_result)
        return this.equals((add_unique_constraint_result)that);
      return false;
    }

    public boolean equals(add_unique_constraint_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(add_unique_constraint_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("add_unique_constraint_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class add_unique_constraint_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_unique_constraint_resultStandardScheme getScheme() {
        return new add_unique_constraint_resultStandardScheme();
      }
    }

    private static class add_unique_constraint_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<add_unique_constraint_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, add_unique_constraint_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, add_unique_constraint_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class add_unique_constraint_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_unique_constraint_resultTupleScheme getScheme() {
        return new add_unique_constraint_resultTupleScheme();
      }
    }

    private static class add_unique_constraint_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<add_unique_constraint_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, add_unique_constraint_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, add_unique_constraint_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_not_null_constraint_args implements org.apache.thrift.TBase<add_not_null_constraint_args, add_not_null_constraint_args._Fields>, java.io.Serializable, Cloneable, Comparable<add_not_null_constraint_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("add_not_null_constraint_args");

    private static final org.apache.thrift.protocol.TField REQ_FIELD_DESC = new org.apache.thrift.protocol.TField("req", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new add_not_null_constraint_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new add_not_null_constraint_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable AddNotNullConstraintRequest req; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQ((short)1, "req");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQ
            return REQ;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQ, new org.apache.thrift.meta_data.FieldMetaData("req", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AddNotNullConstraintRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(add_not_null_constraint_args.class, metaDataMap);
    }

    public add_not_null_constraint_args() {
    }

    public add_not_null_constraint_args(
      AddNotNullConstraintRequest req)
    {
      this();
      this.req = req;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public add_not_null_constraint_args(add_not_null_constraint_args other) {
      if (other.isSetReq()) {
        this.req = new AddNotNullConstraintRequest(other.req);
      }
    }

    public add_not_null_constraint_args deepCopy() {
      return new add_not_null_constraint_args(this);
    }

    @Override
    public void clear() {
      this.req = null;
    }

    @org.apache.thrift.annotation.Nullable
    public AddNotNullConstraintRequest getReq() {
      return this.req;
    }

    public void setReq(@org.apache.thrift.annotation.Nullable AddNotNullConstraintRequest req) {
      this.req = req;
    }

    public void unsetReq() {
      this.req = null;
    }

    /** Returns true if field req is set (has been assigned a value) and false otherwise */
    public boolean isSetReq() {
      return this.req != null;
    }

    public void setReqIsSet(boolean value) {
      if (!value) {
        this.req = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQ:
        if (value == null) {
          unsetReq();
        } else {
          setReq((AddNotNullConstraintRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQ:
        return getReq();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQ:
        return isSetReq();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof add_not_null_constraint_args)
        return this.equals((add_not_null_constraint_args)that);
      return false;
    }

    public boolean equals(add_not_null_constraint_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_req = true && this.isSetReq();
      boolean that_present_req = true && that.isSetReq();
      if (this_present_req || that_present_req) {
        if (!(this_present_req && that_present_req))
          return false;
        if (!this.req.equals(that.req))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetReq()) ? 131071 : 524287);
      if (isSetReq())
        hashCode = hashCode * 8191 + req.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(add_not_null_constraint_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetReq(), other.isSetReq());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetReq()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.req, other.req);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("add_not_null_constraint_args(");
      boolean first = true;

      sb.append("req:");
      if (this.req == null) {
        sb.append("null");
      } else {
        sb.append(this.req);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (req != null) {
        req.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class add_not_null_constraint_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_not_null_constraint_argsStandardScheme getScheme() {
        return new add_not_null_constraint_argsStandardScheme();
      }
    }

    private static class add_not_null_constraint_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<add_not_null_constraint_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, add_not_null_constraint_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQ
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.req = new AddNotNullConstraintRequest();
                struct.req.read(iprot);
                struct.setReqIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, add_not_null_constraint_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.req != null) {
          oprot.writeFieldBegin(REQ_FIELD_DESC);
          struct.req.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class add_not_null_constraint_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_not_null_constraint_argsTupleScheme getScheme() {
        return new add_not_null_constraint_argsTupleScheme();
      }
    }

    private static class add_not_null_constraint_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<add_not_null_constraint_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, add_not_null_constraint_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetReq()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetReq()) {
          struct.req.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, add_not_null_constraint_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.req = new AddNotNullConstraintRequest();
          struct.req.read(iprot);
          struct.setReqIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_not_null_constraint_result implements org.apache.thrift.TBase<add_not_null_constraint_result, add_not_null_constraint_result._Fields>, java.io.Serializable, Cloneable, Comparable<add_not_null_constraint_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("add_not_null_constraint_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new add_not_null_constraint_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new add_not_null_constraint_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(add_not_null_constraint_result.class, metaDataMap);
    }

    public add_not_null_constraint_result() {
    }

    public add_not_null_constraint_result(
      NoSuchObjectException o1,
      MetaException o2)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public add_not_null_constraint_result(add_not_null_constraint_result other) {
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public add_not_null_constraint_result deepCopy() {
      return new add_not_null_constraint_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof add_not_null_constraint_result)
        return this.equals((add_not_null_constraint_result)that);
      return false;
    }

    public boolean equals(add_not_null_constraint_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(add_not_null_constraint_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("add_not_null_constraint_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class add_not_null_constraint_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_not_null_constraint_resultStandardScheme getScheme() {
        return new add_not_null_constraint_resultStandardScheme();
      }
    }

    private static class add_not_null_constraint_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<add_not_null_constraint_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, add_not_null_constraint_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, add_not_null_constraint_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class add_not_null_constraint_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_not_null_constraint_resultTupleScheme getScheme() {
        return new add_not_null_constraint_resultTupleScheme();
      }
    }

    private static class add_not_null_constraint_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<add_not_null_constraint_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, add_not_null_constraint_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, add_not_null_constraint_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_default_constraint_args implements org.apache.thrift.TBase<add_default_constraint_args, add_default_constraint_args._Fields>, java.io.Serializable, Cloneable, Comparable<add_default_constraint_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("add_default_constraint_args");

    private static final org.apache.thrift.protocol.TField REQ_FIELD_DESC = new org.apache.thrift.protocol.TField("req", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new add_default_constraint_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new add_default_constraint_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable AddDefaultConstraintRequest req; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQ((short)1, "req");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQ
            return REQ;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQ, new org.apache.thrift.meta_data.FieldMetaData("req", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AddDefaultConstraintRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(add_default_constraint_args.class, metaDataMap);
    }

    public add_default_constraint_args() {
    }

    public add_default_constraint_args(
      AddDefaultConstraintRequest req)
    {
      this();
      this.req = req;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public add_default_constraint_args(add_default_constraint_args other) {
      if (other.isSetReq()) {
        this.req = new AddDefaultConstraintRequest(other.req);
      }
    }

    public add_default_constraint_args deepCopy() {
      return new add_default_constraint_args(this);
    }

    @Override
    public void clear() {
      this.req = null;
    }

    @org.apache.thrift.annotation.Nullable
    public AddDefaultConstraintRequest getReq() {
      return this.req;
    }

    public void setReq(@org.apache.thrift.annotation.Nullable AddDefaultConstraintRequest req) {
      this.req = req;
    }

    public void unsetReq() {
      this.req = null;
    }

    /** Returns true if field req is set (has been assigned a value) and false otherwise */
    public boolean isSetReq() {
      return this.req != null;
    }

    public void setReqIsSet(boolean value) {
      if (!value) {
        this.req = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQ:
        if (value == null) {
          unsetReq();
        } else {
          setReq((AddDefaultConstraintRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQ:
        return getReq();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQ:
        return isSetReq();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof add_default_constraint_args)
        return this.equals((add_default_constraint_args)that);
      return false;
    }

    public boolean equals(add_default_constraint_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_req = true && this.isSetReq();
      boolean that_present_req = true && that.isSetReq();
      if (this_present_req || that_present_req) {
        if (!(this_present_req && that_present_req))
          return false;
        if (!this.req.equals(that.req))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetReq()) ? 131071 : 524287);
      if (isSetReq())
        hashCode = hashCode * 8191 + req.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(add_default_constraint_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetReq(), other.isSetReq());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetReq()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.req, other.req);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("add_default_constraint_args(");
      boolean first = true;

      sb.append("req:");
      if (this.req == null) {
        sb.append("null");
      } else {
        sb.append(this.req);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (req != null) {
        req.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class add_default_constraint_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_default_constraint_argsStandardScheme getScheme() {
        return new add_default_constraint_argsStandardScheme();
      }
    }

    private static class add_default_constraint_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<add_default_constraint_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, add_default_constraint_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQ
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.req = new AddDefaultConstraintRequest();
                struct.req.read(iprot);
                struct.setReqIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, add_default_constraint_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.req != null) {
          oprot.writeFieldBegin(REQ_FIELD_DESC);
          struct.req.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class add_default_constraint_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_default_constraint_argsTupleScheme getScheme() {
        return new add_default_constraint_argsTupleScheme();
      }
    }

    private static class add_default_constraint_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<add_default_constraint_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, add_default_constraint_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetReq()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetReq()) {
          struct.req.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, add_default_constraint_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.req = new AddDefaultConstraintRequest();
          struct.req.read(iprot);
          struct.setReqIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_default_constraint_result implements org.apache.thrift.TBase<add_default_constraint_result, add_default_constraint_result._Fields>, java.io.Serializable, Cloneable, Comparable<add_default_constraint_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("add_default_constraint_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new add_default_constraint_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new add_default_constraint_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(add_default_constraint_result.class, metaDataMap);
    }

    public add_default_constraint_result() {
    }

    public add_default_constraint_result(
      NoSuchObjectException o1,
      MetaException o2)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public add_default_constraint_result(add_default_constraint_result other) {
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public add_default_constraint_result deepCopy() {
      return new add_default_constraint_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof add_default_constraint_result)
        return this.equals((add_default_constraint_result)that);
      return false;
    }

    public boolean equals(add_default_constraint_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(add_default_constraint_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("add_default_constraint_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class add_default_constraint_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_default_constraint_resultStandardScheme getScheme() {
        return new add_default_constraint_resultStandardScheme();
      }
    }

    private static class add_default_constraint_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<add_default_constraint_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, add_default_constraint_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, add_default_constraint_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class add_default_constraint_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_default_constraint_resultTupleScheme getScheme() {
        return new add_default_constraint_resultTupleScheme();
      }
    }

    private static class add_default_constraint_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<add_default_constraint_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, add_default_constraint_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, add_default_constraint_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_check_constraint_args implements org.apache.thrift.TBase<add_check_constraint_args, add_check_constraint_args._Fields>, java.io.Serializable, Cloneable, Comparable<add_check_constraint_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("add_check_constraint_args");

    private static final org.apache.thrift.protocol.TField REQ_FIELD_DESC = new org.apache.thrift.protocol.TField("req", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new add_check_constraint_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new add_check_constraint_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable AddCheckConstraintRequest req; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQ((short)1, "req");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQ
            return REQ;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQ, new org.apache.thrift.meta_data.FieldMetaData("req", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AddCheckConstraintRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(add_check_constraint_args.class, metaDataMap);
    }

    public add_check_constraint_args() {
    }

    public add_check_constraint_args(
      AddCheckConstraintRequest req)
    {
      this();
      this.req = req;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public add_check_constraint_args(add_check_constraint_args other) {
      if (other.isSetReq()) {
        this.req = new AddCheckConstraintRequest(other.req);
      }
    }

    public add_check_constraint_args deepCopy() {
      return new add_check_constraint_args(this);
    }

    @Override
    public void clear() {
      this.req = null;
    }

    @org.apache.thrift.annotation.Nullable
    public AddCheckConstraintRequest getReq() {
      return this.req;
    }

    public void setReq(@org.apache.thrift.annotation.Nullable AddCheckConstraintRequest req) {
      this.req = req;
    }

    public void unsetReq() {
      this.req = null;
    }

    /** Returns true if field req is set (has been assigned a value) and false otherwise */
    public boolean isSetReq() {
      return this.req != null;
    }

    public void setReqIsSet(boolean value) {
      if (!value) {
        this.req = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQ:
        if (value == null) {
          unsetReq();
        } else {
          setReq((AddCheckConstraintRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQ:
        return getReq();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQ:
        return isSetReq();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof add_check_constraint_args)
        return this.equals((add_check_constraint_args)that);
      return false;
    }

    public boolean equals(add_check_constraint_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_req = true && this.isSetReq();
      boolean that_present_req = true && that.isSetReq();
      if (this_present_req || that_present_req) {
        if (!(this_present_req && that_present_req))
          return false;
        if (!this.req.equals(that.req))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetReq()) ? 131071 : 524287);
      if (isSetReq())
        hashCode = hashCode * 8191 + req.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(add_check_constraint_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetReq(), other.isSetReq());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetReq()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.req, other.req);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("add_check_constraint_args(");
      boolean first = true;

      sb.append("req:");
      if (this.req == null) {
        sb.append("null");
      } else {
        sb.append(this.req);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (req != null) {
        req.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class add_check_constraint_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_check_constraint_argsStandardScheme getScheme() {
        return new add_check_constraint_argsStandardScheme();
      }
    }

    private static class add_check_constraint_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<add_check_constraint_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, add_check_constraint_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQ
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.req = new AddCheckConstraintRequest();
                struct.req.read(iprot);
                struct.setReqIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, add_check_constraint_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.req != null) {
          oprot.writeFieldBegin(REQ_FIELD_DESC);
          struct.req.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class add_check_constraint_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_check_constraint_argsTupleScheme getScheme() {
        return new add_check_constraint_argsTupleScheme();
      }
    }

    private static class add_check_constraint_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<add_check_constraint_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, add_check_constraint_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetReq()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetReq()) {
          struct.req.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, add_check_constraint_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.req = new AddCheckConstraintRequest();
          struct.req.read(iprot);
          struct.setReqIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_check_constraint_result implements org.apache.thrift.TBase<add_check_constraint_result, add_check_constraint_result._Fields>, java.io.Serializable, Cloneable, Comparable<add_check_constraint_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("add_check_constraint_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new add_check_constraint_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new add_check_constraint_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(add_check_constraint_result.class, metaDataMap);
    }

    public add_check_constraint_result() {
    }

    public add_check_constraint_result(
      NoSuchObjectException o1,
      MetaException o2)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public add_check_constraint_result(add_check_constraint_result other) {
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public add_check_constraint_result deepCopy() {
      return new add_check_constraint_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof add_check_constraint_result)
        return this.equals((add_check_constraint_result)that);
      return false;
    }

    public boolean equals(add_check_constraint_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(add_check_constraint_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("add_check_constraint_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class add_check_constraint_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_check_constraint_resultStandardScheme getScheme() {
        return new add_check_constraint_resultStandardScheme();
      }
    }

    private static class add_check_constraint_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<add_check_constraint_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, add_check_constraint_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, add_check_constraint_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class add_check_constraint_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_check_constraint_resultTupleScheme getScheme() {
        return new add_check_constraint_resultTupleScheme();
      }
    }

    private static class add_check_constraint_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<add_check_constraint_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, add_check_constraint_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, add_check_constraint_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_table_args implements org.apache.thrift.TBase<drop_table_args, drop_table_args._Fields>, java.io.Serializable, Cloneable, Comparable<drop_table_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_table_args");

    private static final org.apache.thrift.protocol.TField DBNAME_FIELD_DESC = new org.apache.thrift.protocol.TField("dbname", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField DELETE_DATA_FIELD_DESC = new org.apache.thrift.protocol.TField("deleteData", org.apache.thrift.protocol.TType.BOOL, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_table_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_table_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String dbname; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String name; // required
    private boolean deleteData; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DBNAME((short)1, "dbname"),
      NAME((short)2, "name"),
      DELETE_DATA((short)3, "deleteData");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DBNAME
            return DBNAME;
          case 2: // NAME
            return NAME;
          case 3: // DELETE_DATA
            return DELETE_DATA;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __DELETEDATA_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DBNAME, new org.apache.thrift.meta_data.FieldMetaData("dbname", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.DELETE_DATA, new org.apache.thrift.meta_data.FieldMetaData("deleteData", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_table_args.class, metaDataMap);
    }

    public drop_table_args() {
    }

    public drop_table_args(
      java.lang.String dbname,
      java.lang.String name,
      boolean deleteData)
    {
      this();
      this.dbname = dbname;
      this.name = name;
      this.deleteData = deleteData;
      setDeleteDataIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_table_args(drop_table_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetDbname()) {
        this.dbname = other.dbname;
      }
      if (other.isSetName()) {
        this.name = other.name;
      }
      this.deleteData = other.deleteData;
    }

    public drop_table_args deepCopy() {
      return new drop_table_args(this);
    }

    @Override
    public void clear() {
      this.dbname = null;
      this.name = null;
      setDeleteDataIsSet(false);
      this.deleteData = false;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDbname() {
      return this.dbname;
    }

    public void setDbname(@org.apache.thrift.annotation.Nullable java.lang.String dbname) {
      this.dbname = dbname;
    }

    public void unsetDbname() {
      this.dbname = null;
    }

    /** Returns true if field dbname is set (has been assigned a value) and false otherwise */
    public boolean isSetDbname() {
      return this.dbname != null;
    }

    public void setDbnameIsSet(boolean value) {
      if (!value) {
        this.dbname = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getName() {
      return this.name;
    }

    public void setName(@org.apache.thrift.annotation.Nullable java.lang.String name) {
      this.name = name;
    }

    public void unsetName() {
      this.name = null;
    }

    /** Returns true if field name is set (has been assigned a value) and false otherwise */
    public boolean isSetName() {
      return this.name != null;
    }

    public void setNameIsSet(boolean value) {
      if (!value) {
        this.name = null;
      }
    }

    public boolean isDeleteData() {
      return this.deleteData;
    }

    public void setDeleteData(boolean deleteData) {
      this.deleteData = deleteData;
      setDeleteDataIsSet(true);
    }

    public void unsetDeleteData() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __DELETEDATA_ISSET_ID);
    }

    /** Returns true if field deleteData is set (has been assigned a value) and false otherwise */
    public boolean isSetDeleteData() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __DELETEDATA_ISSET_ID);
    }

    public void setDeleteDataIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __DELETEDATA_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DBNAME:
        if (value == null) {
          unsetDbname();
        } else {
          setDbname((java.lang.String)value);
        }
        break;

      case NAME:
        if (value == null) {
          unsetName();
        } else {
          setName((java.lang.String)value);
        }
        break;

      case DELETE_DATA:
        if (value == null) {
          unsetDeleteData();
        } else {
          setDeleteData((java.lang.Boolean)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DBNAME:
        return getDbname();

      case NAME:
        return getName();

      case DELETE_DATA:
        return isDeleteData();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DBNAME:
        return isSetDbname();
      case NAME:
        return isSetName();
      case DELETE_DATA:
        return isSetDeleteData();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_table_args)
        return this.equals((drop_table_args)that);
      return false;
    }

    public boolean equals(drop_table_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_dbname = true && this.isSetDbname();
      boolean that_present_dbname = true && that.isSetDbname();
      if (this_present_dbname || that_present_dbname) {
        if (!(this_present_dbname && that_present_dbname))
          return false;
        if (!this.dbname.equals(that.dbname))
          return false;
      }

      boolean this_present_name = true && this.isSetName();
      boolean that_present_name = true && that.isSetName();
      if (this_present_name || that_present_name) {
        if (!(this_present_name && that_present_name))
          return false;
        if (!this.name.equals(that.name))
          return false;
      }

      boolean this_present_deleteData = true;
      boolean that_present_deleteData = true;
      if (this_present_deleteData || that_present_deleteData) {
        if (!(this_present_deleteData && that_present_deleteData))
          return false;
        if (this.deleteData != that.deleteData)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDbname()) ? 131071 : 524287);
      if (isSetDbname())
        hashCode = hashCode * 8191 + dbname.hashCode();

      hashCode = hashCode * 8191 + ((isSetName()) ? 131071 : 524287);
      if (isSetName())
        hashCode = hashCode * 8191 + name.hashCode();

      hashCode = hashCode * 8191 + ((deleteData) ? 131071 : 524287);

      return hashCode;
    }

    @Override
    public int compareTo(drop_table_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDbname(), other.isSetDbname());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDbname()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dbname, other.dbname);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetName(), other.isSetName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, other.name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetDeleteData(), other.isSetDeleteData());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDeleteData()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.deleteData, other.deleteData);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_table_args(");
      boolean first = true;

      sb.append("dbname:");
      if (this.dbname == null) {
        sb.append("null");
      } else {
        sb.append(this.dbname);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("name:");
      if (this.name == null) {
        sb.append("null");
      } else {
        sb.append(this.name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("deleteData:");
      sb.append(this.deleteData);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_table_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_table_argsStandardScheme getScheme() {
        return new drop_table_argsStandardScheme();
      }
    }

    private static class drop_table_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_table_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_table_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DBNAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.dbname = iprot.readString();
                struct.setDbnameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.name = iprot.readString();
                struct.setNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // DELETE_DATA
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.deleteData = iprot.readBool();
                struct.setDeleteDataIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_table_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.dbname != null) {
          oprot.writeFieldBegin(DBNAME_FIELD_DESC);
          oprot.writeString(struct.dbname);
          oprot.writeFieldEnd();
        }
        if (struct.name != null) {
          oprot.writeFieldBegin(NAME_FIELD_DESC);
          oprot.writeString(struct.name);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(DELETE_DATA_FIELD_DESC);
        oprot.writeBool(struct.deleteData);
        oprot.writeFieldEnd();
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_table_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_table_argsTupleScheme getScheme() {
        return new drop_table_argsTupleScheme();
      }
    }

    private static class drop_table_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_table_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_table_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDbname()) {
          optionals.set(0);
        }
        if (struct.isSetName()) {
          optionals.set(1);
        }
        if (struct.isSetDeleteData()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetDbname()) {
          oprot.writeString(struct.dbname);
        }
        if (struct.isSetName()) {
          oprot.writeString(struct.name);
        }
        if (struct.isSetDeleteData()) {
          oprot.writeBool(struct.deleteData);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_table_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.dbname = iprot.readString();
          struct.setDbnameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.name = iprot.readString();
          struct.setNameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.deleteData = iprot.readBool();
          struct.setDeleteDataIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_table_result implements org.apache.thrift.TBase<drop_table_result, drop_table_result._Fields>, java.io.Serializable, Cloneable, Comparable<drop_table_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_table_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_table_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_table_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O3((short)2, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_table_result.class, metaDataMap);
    }

    public drop_table_result() {
    }

    public drop_table_result(
      NoSuchObjectException o1,
      MetaException o3)
    {
      this();
      this.o1 = o1;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_table_result(drop_table_result other) {
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
    }

    public drop_table_result deepCopy() {
      return new drop_table_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o3 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_table_result)
        return this.equals((drop_table_result)that);
      return false;
    }

    public boolean equals(drop_table_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(drop_table_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_table_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_table_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_table_resultStandardScheme getScheme() {
        return new drop_table_resultStandardScheme();
      }
    }

    private static class drop_table_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_table_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_table_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_table_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_table_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_table_resultTupleScheme getScheme() {
        return new drop_table_resultTupleScheme();
      }
    }

    private static class drop_table_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_table_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_table_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO3()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_table_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_table_with_environment_context_args implements org.apache.thrift.TBase<drop_table_with_environment_context_args, drop_table_with_environment_context_args._Fields>, java.io.Serializable, Cloneable, Comparable<drop_table_with_environment_context_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_table_with_environment_context_args");

    private static final org.apache.thrift.protocol.TField DBNAME_FIELD_DESC = new org.apache.thrift.protocol.TField("dbname", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField DELETE_DATA_FIELD_DESC = new org.apache.thrift.protocol.TField("deleteData", org.apache.thrift.protocol.TType.BOOL, (short)3);
    private static final org.apache.thrift.protocol.TField ENVIRONMENT_CONTEXT_FIELD_DESC = new org.apache.thrift.protocol.TField("environment_context", org.apache.thrift.protocol.TType.STRUCT, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_table_with_environment_context_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_table_with_environment_context_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String dbname; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String name; // required
    private boolean deleteData; // required
    private @org.apache.thrift.annotation.Nullable EnvironmentContext environment_context; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DBNAME((short)1, "dbname"),
      NAME((short)2, "name"),
      DELETE_DATA((short)3, "deleteData"),
      ENVIRONMENT_CONTEXT((short)4, "environment_context");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DBNAME
            return DBNAME;
          case 2: // NAME
            return NAME;
          case 3: // DELETE_DATA
            return DELETE_DATA;
          case 4: // ENVIRONMENT_CONTEXT
            return ENVIRONMENT_CONTEXT;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __DELETEDATA_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DBNAME, new org.apache.thrift.meta_data.FieldMetaData("dbname", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.DELETE_DATA, new org.apache.thrift.meta_data.FieldMetaData("deleteData", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.ENVIRONMENT_CONTEXT, new org.apache.thrift.meta_data.FieldMetaData("environment_context", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, EnvironmentContext.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_table_with_environment_context_args.class, metaDataMap);
    }

    public drop_table_with_environment_context_args() {
    }

    public drop_table_with_environment_context_args(
      java.lang.String dbname,
      java.lang.String name,
      boolean deleteData,
      EnvironmentContext environment_context)
    {
      this();
      this.dbname = dbname;
      this.name = name;
      this.deleteData = deleteData;
      setDeleteDataIsSet(true);
      this.environment_context = environment_context;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_table_with_environment_context_args(drop_table_with_environment_context_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetDbname()) {
        this.dbname = other.dbname;
      }
      if (other.isSetName()) {
        this.name = other.name;
      }
      this.deleteData = other.deleteData;
      if (other.isSetEnvironment_context()) {
        this.environment_context = new EnvironmentContext(other.environment_context);
      }
    }

    public drop_table_with_environment_context_args deepCopy() {
      return new drop_table_with_environment_context_args(this);
    }

    @Override
    public void clear() {
      this.dbname = null;
      this.name = null;
      setDeleteDataIsSet(false);
      this.deleteData = false;
      this.environment_context = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDbname() {
      return this.dbname;
    }

    public void setDbname(@org.apache.thrift.annotation.Nullable java.lang.String dbname) {
      this.dbname = dbname;
    }

    public void unsetDbname() {
      this.dbname = null;
    }

    /** Returns true if field dbname is set (has been assigned a value) and false otherwise */
    public boolean isSetDbname() {
      return this.dbname != null;
    }

    public void setDbnameIsSet(boolean value) {
      if (!value) {
        this.dbname = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getName() {
      return this.name;
    }

    public void setName(@org.apache.thrift.annotation.Nullable java.lang.String name) {
      this.name = name;
    }

    public void unsetName() {
      this.name = null;
    }

    /** Returns true if field name is set (has been assigned a value) and false otherwise */
    public boolean isSetName() {
      return this.name != null;
    }

    public void setNameIsSet(boolean value) {
      if (!value) {
        this.name = null;
      }
    }

    public boolean isDeleteData() {
      return this.deleteData;
    }

    public void setDeleteData(boolean deleteData) {
      this.deleteData = deleteData;
      setDeleteDataIsSet(true);
    }

    public void unsetDeleteData() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __DELETEDATA_ISSET_ID);
    }

    /** Returns true if field deleteData is set (has been assigned a value) and false otherwise */
    public boolean isSetDeleteData() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __DELETEDATA_ISSET_ID);
    }

    public void setDeleteDataIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __DELETEDATA_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public EnvironmentContext getEnvironment_context() {
      return this.environment_context;
    }

    public void setEnvironment_context(@org.apache.thrift.annotation.Nullable EnvironmentContext environment_context) {
      this.environment_context = environment_context;
    }

    public void unsetEnvironment_context() {
      this.environment_context = null;
    }

    /** Returns true if field environment_context is set (has been assigned a value) and false otherwise */
    public boolean isSetEnvironment_context() {
      return this.environment_context != null;
    }

    public void setEnvironment_contextIsSet(boolean value) {
      if (!value) {
        this.environment_context = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DBNAME:
        if (value == null) {
          unsetDbname();
        } else {
          setDbname((java.lang.String)value);
        }
        break;

      case NAME:
        if (value == null) {
          unsetName();
        } else {
          setName((java.lang.String)value);
        }
        break;

      case DELETE_DATA:
        if (value == null) {
          unsetDeleteData();
        } else {
          setDeleteData((java.lang.Boolean)value);
        }
        break;

      case ENVIRONMENT_CONTEXT:
        if (value == null) {
          unsetEnvironment_context();
        } else {
          setEnvironment_context((EnvironmentContext)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DBNAME:
        return getDbname();

      case NAME:
        return getName();

      case DELETE_DATA:
        return isDeleteData();

      case ENVIRONMENT_CONTEXT:
        return getEnvironment_context();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DBNAME:
        return isSetDbname();
      case NAME:
        return isSetName();
      case DELETE_DATA:
        return isSetDeleteData();
      case ENVIRONMENT_CONTEXT:
        return isSetEnvironment_context();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_table_with_environment_context_args)
        return this.equals((drop_table_with_environment_context_args)that);
      return false;
    }

    public boolean equals(drop_table_with_environment_context_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_dbname = true && this.isSetDbname();
      boolean that_present_dbname = true && that.isSetDbname();
      if (this_present_dbname || that_present_dbname) {
        if (!(this_present_dbname && that_present_dbname))
          return false;
        if (!this.dbname.equals(that.dbname))
          return false;
      }

      boolean this_present_name = true && this.isSetName();
      boolean that_present_name = true && that.isSetName();
      if (this_present_name || that_present_name) {
        if (!(this_present_name && that_present_name))
          return false;
        if (!this.name.equals(that.name))
          return false;
      }

      boolean this_present_deleteData = true;
      boolean that_present_deleteData = true;
      if (this_present_deleteData || that_present_deleteData) {
        if (!(this_present_deleteData && that_present_deleteData))
          return false;
        if (this.deleteData != that.deleteData)
          return false;
      }

      boolean this_present_environment_context = true && this.isSetEnvironment_context();
      boolean that_present_environment_context = true && that.isSetEnvironment_context();
      if (this_present_environment_context || that_present_environment_context) {
        if (!(this_present_environment_context && that_present_environment_context))
          return false;
        if (!this.environment_context.equals(that.environment_context))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDbname()) ? 131071 : 524287);
      if (isSetDbname())
        hashCode = hashCode * 8191 + dbname.hashCode();

      hashCode = hashCode * 8191 + ((isSetName()) ? 131071 : 524287);
      if (isSetName())
        hashCode = hashCode * 8191 + name.hashCode();

      hashCode = hashCode * 8191 + ((deleteData) ? 131071 : 524287);

      hashCode = hashCode * 8191 + ((isSetEnvironment_context()) ? 131071 : 524287);
      if (isSetEnvironment_context())
        hashCode = hashCode * 8191 + environment_context.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(drop_table_with_environment_context_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDbname(), other.isSetDbname());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDbname()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dbname, other.dbname);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetName(), other.isSetName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, other.name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetDeleteData(), other.isSetDeleteData());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDeleteData()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.deleteData, other.deleteData);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetEnvironment_context(), other.isSetEnvironment_context());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEnvironment_context()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.environment_context, other.environment_context);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_table_with_environment_context_args(");
      boolean first = true;

      sb.append("dbname:");
      if (this.dbname == null) {
        sb.append("null");
      } else {
        sb.append(this.dbname);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("name:");
      if (this.name == null) {
        sb.append("null");
      } else {
        sb.append(this.name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("deleteData:");
      sb.append(this.deleteData);
      first = false;
      if (!first) sb.append(", ");
      sb.append("environment_context:");
      if (this.environment_context == null) {
        sb.append("null");
      } else {
        sb.append(this.environment_context);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (environment_context != null) {
        environment_context.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_table_with_environment_context_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_table_with_environment_context_argsStandardScheme getScheme() {
        return new drop_table_with_environment_context_argsStandardScheme();
      }
    }

    private static class drop_table_with_environment_context_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_table_with_environment_context_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_table_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DBNAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.dbname = iprot.readString();
                struct.setDbnameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.name = iprot.readString();
                struct.setNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // DELETE_DATA
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.deleteData = iprot.readBool();
                struct.setDeleteDataIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // ENVIRONMENT_CONTEXT
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.environment_context = new EnvironmentContext();
                struct.environment_context.read(iprot);
                struct.setEnvironment_contextIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_table_with_environment_context_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.dbname != null) {
          oprot.writeFieldBegin(DBNAME_FIELD_DESC);
          oprot.writeString(struct.dbname);
          oprot.writeFieldEnd();
        }
        if (struct.name != null) {
          oprot.writeFieldBegin(NAME_FIELD_DESC);
          oprot.writeString(struct.name);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(DELETE_DATA_FIELD_DESC);
        oprot.writeBool(struct.deleteData);
        oprot.writeFieldEnd();
        if (struct.environment_context != null) {
          oprot.writeFieldBegin(ENVIRONMENT_CONTEXT_FIELD_DESC);
          struct.environment_context.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_table_with_environment_context_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_table_with_environment_context_argsTupleScheme getScheme() {
        return new drop_table_with_environment_context_argsTupleScheme();
      }
    }

    private static class drop_table_with_environment_context_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_table_with_environment_context_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_table_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDbname()) {
          optionals.set(0);
        }
        if (struct.isSetName()) {
          optionals.set(1);
        }
        if (struct.isSetDeleteData()) {
          optionals.set(2);
        }
        if (struct.isSetEnvironment_context()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetDbname()) {
          oprot.writeString(struct.dbname);
        }
        if (struct.isSetName()) {
          oprot.writeString(struct.name);
        }
        if (struct.isSetDeleteData()) {
          oprot.writeBool(struct.deleteData);
        }
        if (struct.isSetEnvironment_context()) {
          struct.environment_context.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_table_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.dbname = iprot.readString();
          struct.setDbnameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.name = iprot.readString();
          struct.setNameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.deleteData = iprot.readBool();
          struct.setDeleteDataIsSet(true);
        }
        if (incoming.get(3)) {
          struct.environment_context = new EnvironmentContext();
          struct.environment_context.read(iprot);
          struct.setEnvironment_contextIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_table_with_environment_context_result implements org.apache.thrift.TBase<drop_table_with_environment_context_result, drop_table_with_environment_context_result._Fields>, java.io.Serializable, Cloneable, Comparable<drop_table_with_environment_context_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_table_with_environment_context_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_table_with_environment_context_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_table_with_environment_context_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O3((short)2, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_table_with_environment_context_result.class, metaDataMap);
    }

    public drop_table_with_environment_context_result() {
    }

    public drop_table_with_environment_context_result(
      NoSuchObjectException o1,
      MetaException o3)
    {
      this();
      this.o1 = o1;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_table_with_environment_context_result(drop_table_with_environment_context_result other) {
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
    }

    public drop_table_with_environment_context_result deepCopy() {
      return new drop_table_with_environment_context_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o3 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_table_with_environment_context_result)
        return this.equals((drop_table_with_environment_context_result)that);
      return false;
    }

    public boolean equals(drop_table_with_environment_context_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(drop_table_with_environment_context_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_table_with_environment_context_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_table_with_environment_context_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_table_with_environment_context_resultStandardScheme getScheme() {
        return new drop_table_with_environment_context_resultStandardScheme();
      }
    }

    private static class drop_table_with_environment_context_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_table_with_environment_context_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_table_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_table_with_environment_context_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_table_with_environment_context_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_table_with_environment_context_resultTupleScheme getScheme() {
        return new drop_table_with_environment_context_resultTupleScheme();
      }
    }

    private static class drop_table_with_environment_context_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_table_with_environment_context_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_table_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO3()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_table_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class truncate_table_args implements org.apache.thrift.TBase<truncate_table_args, truncate_table_args._Fields>, java.io.Serializable, Cloneable, Comparable<truncate_table_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("truncate_table_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("dbName", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField PART_NAMES_FIELD_DESC = new org.apache.thrift.protocol.TField("partNames", org.apache.thrift.protocol.TType.LIST, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new truncate_table_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new truncate_table_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String dbName; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tableName; // required
    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> partNames; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "dbName"),
      TABLE_NAME((short)2, "tableName"),
      PART_NAMES((short)3, "partNames");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // PART_NAMES
            return PART_NAMES;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("dbName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PART_NAMES, new org.apache.thrift.meta_data.FieldMetaData("partNames", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(truncate_table_args.class, metaDataMap);
    }

    public truncate_table_args() {
    }

    public truncate_table_args(
      java.lang.String dbName,
      java.lang.String tableName,
      java.util.List<java.lang.String> partNames)
    {
      this();
      this.dbName = dbName;
      this.tableName = tableName;
      this.partNames = partNames;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public truncate_table_args(truncate_table_args other) {
      if (other.isSetDbName()) {
        this.dbName = other.dbName;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
      if (other.isSetPartNames()) {
        java.util.List<java.lang.String> __this__partNames = new java.util.ArrayList<java.lang.String>(other.partNames);
        this.partNames = __this__partNames;
      }
    }

    public truncate_table_args deepCopy() {
      return new truncate_table_args(this);
    }

    @Override
    public void clear() {
      this.dbName = null;
      this.tableName = null;
      this.partNames = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDbName() {
      return this.dbName;
    }

    public void setDbName(@org.apache.thrift.annotation.Nullable java.lang.String dbName) {
      this.dbName = dbName;
    }

    public void unsetDbName() {
      this.dbName = null;
    }

    /** Returns true if field dbName is set (has been assigned a value) and false otherwise */
    public boolean isSetDbName() {
      return this.dbName != null;
    }

    public void setDbNameIsSet(boolean value) {
      if (!value) {
        this.dbName = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTableName() {
      return this.tableName;
    }

    public void setTableName(@org.apache.thrift.annotation.Nullable java.lang.String tableName) {
      this.tableName = tableName;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

    /** Returns true if field tableName is set (has been assigned a value) and false otherwise */
    public boolean isSetTableName() {
      return this.tableName != null;
    }

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public int getPartNamesSize() {
      return (this.partNames == null) ? 0 : this.partNames.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getPartNamesIterator() {
      return (this.partNames == null) ? null : this.partNames.iterator();
    }

    public void addToPartNames(java.lang.String elem) {
      if (this.partNames == null) {
        this.partNames = new java.util.ArrayList<java.lang.String>();
      }
      this.partNames.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getPartNames() {
      return this.partNames;
    }

    public void setPartNames(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> partNames) {
      this.partNames = partNames;
    }

    public void unsetPartNames() {
      this.partNames = null;
    }

    /** Returns true if field partNames is set (has been assigned a value) and false otherwise */
    public boolean isSetPartNames() {
      return this.partNames != null;
    }

    public void setPartNamesIsSet(boolean value) {
      if (!value) {
        this.partNames = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDbName();
        } else {
          setDbName((java.lang.String)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((java.lang.String)value);
        }
        break;

      case PART_NAMES:
        if (value == null) {
          unsetPartNames();
        } else {
          setPartNames((java.util.List<java.lang.String>)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDbName();

      case TABLE_NAME:
        return getTableName();

      case PART_NAMES:
        return getPartNames();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDbName();
      case TABLE_NAME:
        return isSetTableName();
      case PART_NAMES:
        return isSetPartNames();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof truncate_table_args)
        return this.equals((truncate_table_args)that);
      return false;
    }

    public boolean equals(truncate_table_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_dbName = true && this.isSetDbName();
      boolean that_present_dbName = true && that.isSetDbName();
      if (this_present_dbName || that_present_dbName) {
        if (!(this_present_dbName && that_present_dbName))
          return false;
        if (!this.dbName.equals(that.dbName))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      boolean this_present_partNames = true && this.isSetPartNames();
      boolean that_present_partNames = true && that.isSetPartNames();
      if (this_present_partNames || that_present_partNames) {
        if (!(this_present_partNames && that_present_partNames))
          return false;
        if (!this.partNames.equals(that.partNames))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDbName()) ? 131071 : 524287);
      if (isSetDbName())
        hashCode = hashCode * 8191 + dbName.hashCode();

      hashCode = hashCode * 8191 + ((isSetTableName()) ? 131071 : 524287);
      if (isSetTableName())
        hashCode = hashCode * 8191 + tableName.hashCode();

      hashCode = hashCode * 8191 + ((isSetPartNames()) ? 131071 : 524287);
      if (isSetPartNames())
        hashCode = hashCode * 8191 + partNames.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(truncate_table_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDbName(), other.isSetDbName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDbName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dbName, other.dbName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTableName(), other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetPartNames(), other.isSetPartNames());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPartNames()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.partNames, other.partNames);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("truncate_table_args(");
      boolean first = true;

      sb.append("dbName:");
      if (this.dbName == null) {
        sb.append("null");
      } else {
        sb.append(this.dbName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("partNames:");
      if (this.partNames == null) {
        sb.append("null");
      } else {
        sb.append(this.partNames);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class truncate_table_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public truncate_table_argsStandardScheme getScheme() {
        return new truncate_table_argsStandardScheme();
      }
    }

    private static class truncate_table_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<truncate_table_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, truncate_table_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.dbName = iprot.readString();
                struct.setDbNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // PART_NAMES
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1026 = iprot.readListBegin();
                  struct.partNames = new java.util.ArrayList<java.lang.String>(_list1026.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem1027;
                  for (int _i1028 = 0; _i1028 < _list1026.size; ++_i1028)
                  {
                    _elem1027 = iprot.readString();
                    struct.partNames.add(_elem1027);
                  }
                  iprot.readListEnd();
                }
                struct.setPartNamesIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, truncate_table_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.dbName != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.dbName);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        if (struct.partNames != null) {
          oprot.writeFieldBegin(PART_NAMES_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.partNames.size()));
            for (java.lang.String _iter1029 : struct.partNames)
            {
              oprot.writeString(_iter1029);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class truncate_table_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public truncate_table_argsTupleScheme getScheme() {
        return new truncate_table_argsTupleScheme();
      }
    }

    private static class truncate_table_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<truncate_table_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, truncate_table_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDbName()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        if (struct.isSetPartNames()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetDbName()) {
          oprot.writeString(struct.dbName);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
        if (struct.isSetPartNames()) {
          {
            oprot.writeI32(struct.partNames.size());
            for (java.lang.String _iter1030 : struct.partNames)
            {
              oprot.writeString(_iter1030);
            }
          }
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, truncate_table_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.dbName = iprot.readString();
          struct.setDbNameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          {
            org.apache.thrift.protocol.TList _list1031 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.partNames = new java.util.ArrayList<java.lang.String>(_list1031.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem1032;
            for (int _i1033 = 0; _i1033 < _list1031.size; ++_i1033)
            {
              _elem1032 = iprot.readString();
              struct.partNames.add(_elem1032);
            }
          }
          struct.setPartNamesIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class truncate_table_result implements org.apache.thrift.TBase<truncate_table_result, truncate_table_result._Fields>, java.io.Serializable, Cloneable, Comparable<truncate_table_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("truncate_table_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new truncate_table_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new truncate_table_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(truncate_table_result.class, metaDataMap);
    }

    public truncate_table_result() {
    }

    public truncate_table_result(
      MetaException o1)
    {
      this();
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public truncate_table_result(truncate_table_result other) {
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public truncate_table_result deepCopy() {
      return new truncate_table_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof truncate_table_result)
        return this.equals((truncate_table_result)that);
      return false;
    }

    public boolean equals(truncate_table_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(truncate_table_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("truncate_table_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class truncate_table_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public truncate_table_resultStandardScheme getScheme() {
        return new truncate_table_resultStandardScheme();
      }
    }

    private static class truncate_table_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<truncate_table_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, truncate_table_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, truncate_table_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class truncate_table_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public truncate_table_resultTupleScheme getScheme() {
        return new truncate_table_resultTupleScheme();
      }
    }

    private static class truncate_table_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<truncate_table_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, truncate_table_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, truncate_table_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_tables_args implements org.apache.thrift.TBase<get_tables_args, get_tables_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_tables_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_tables_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField PATTERN_FIELD_DESC = new org.apache.thrift.protocol.TField("pattern", org.apache.thrift.protocol.TType.STRING, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_tables_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_tables_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String pattern; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      PATTERN((short)2, "pattern");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // PATTERN
            return PATTERN;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PATTERN, new org.apache.thrift.meta_data.FieldMetaData("pattern", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_tables_args.class, metaDataMap);
    }

    public get_tables_args() {
    }

    public get_tables_args(
      java.lang.String db_name,
      java.lang.String pattern)
    {
      this();
      this.db_name = db_name;
      this.pattern = pattern;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_tables_args(get_tables_args other) {
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetPattern()) {
        this.pattern = other.pattern;
      }
    }

    public get_tables_args deepCopy() {
      return new get_tables_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.pattern = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getPattern() {
      return this.pattern;
    }

    public void setPattern(@org.apache.thrift.annotation.Nullable java.lang.String pattern) {
      this.pattern = pattern;
    }

    public void unsetPattern() {
      this.pattern = null;
    }

    /** Returns true if field pattern is set (has been assigned a value) and false otherwise */
    public boolean isSetPattern() {
      return this.pattern != null;
    }

    public void setPatternIsSet(boolean value) {
      if (!value) {
        this.pattern = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case PATTERN:
        if (value == null) {
          unsetPattern();
        } else {
          setPattern((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case PATTERN:
        return getPattern();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case PATTERN:
        return isSetPattern();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_tables_args)
        return this.equals((get_tables_args)that);
      return false;
    }

    public boolean equals(get_tables_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_pattern = true && this.isSetPattern();
      boolean that_present_pattern = true && that.isSetPattern();
      if (this_present_pattern || that_present_pattern) {
        if (!(this_present_pattern && that_present_pattern))
          return false;
        if (!this.pattern.equals(that.pattern))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetPattern()) ? 131071 : 524287);
      if (isSetPattern())
        hashCode = hashCode * 8191 + pattern.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_tables_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetPattern(), other.isSetPattern());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPattern()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.pattern, other.pattern);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_tables_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("pattern:");
      if (this.pattern == null) {
        sb.append("null");
      } else {
        sb.append(this.pattern);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_tables_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_tables_argsStandardScheme getScheme() {
        return new get_tables_argsStandardScheme();
      }
    }

    private static class get_tables_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_tables_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_tables_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // PATTERN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.pattern = iprot.readString();
                struct.setPatternIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_tables_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.pattern != null) {
          oprot.writeFieldBegin(PATTERN_FIELD_DESC);
          oprot.writeString(struct.pattern);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_tables_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_tables_argsTupleScheme getScheme() {
        return new get_tables_argsTupleScheme();
      }
    }

    private static class get_tables_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_tables_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_tables_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetPattern()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetPattern()) {
          oprot.writeString(struct.pattern);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_tables_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.pattern = iprot.readString();
          struct.setPatternIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_tables_result implements org.apache.thrift.TBase<get_tables_result, get_tables_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_tables_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_tables_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_tables_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_tables_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_tables_result.class, metaDataMap);
    }

    public get_tables_result() {
    }

    public get_tables_result(
      java.util.List<java.lang.String> success,
      MetaException o1)
    {
      this();
      this.success = success;
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_tables_result(get_tables_result other) {
      if (other.isSetSuccess()) {
        java.util.List<java.lang.String> __this__success = new java.util.ArrayList<java.lang.String>(other.success);
        this.success = __this__success;
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public get_tables_result deepCopy() {
      return new get_tables_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(java.lang.String elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<java.lang.String>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<java.lang.String>)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_tables_result)
        return this.equals((get_tables_result)that);
      return false;
    }

    public boolean equals(get_tables_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_tables_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_tables_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_tables_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_tables_resultStandardScheme getScheme() {
        return new get_tables_resultStandardScheme();
      }
    }

    private static class get_tables_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_tables_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_tables_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1034 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<java.lang.String>(_list1034.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem1035;
                  for (int _i1036 = 0; _i1036 < _list1034.size; ++_i1036)
                  {
                    _elem1035 = iprot.readString();
                    struct.success.add(_elem1035);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_tables_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.success.size()));
            for (java.lang.String _iter1037 : struct.success)
            {
              oprot.writeString(_iter1037);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_tables_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_tables_resultTupleScheme getScheme() {
        return new get_tables_resultTupleScheme();
      }
    }

    private static class get_tables_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_tables_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_tables_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (java.lang.String _iter1038 : struct.success)
            {
              oprot.writeString(_iter1038);
            }
          }
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_tables_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list1039 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.success = new java.util.ArrayList<java.lang.String>(_list1039.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem1040;
            for (int _i1041 = 0; _i1041 < _list1039.size; ++_i1041)
            {
              _elem1040 = iprot.readString();
              struct.success.add(_elem1040);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_tables_by_type_args implements org.apache.thrift.TBase<get_tables_by_type_args, get_tables_by_type_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_tables_by_type_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_tables_by_type_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField PATTERN_FIELD_DESC = new org.apache.thrift.protocol.TField("pattern", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField TABLE_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("tableType", org.apache.thrift.protocol.TType.STRING, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_tables_by_type_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_tables_by_type_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String pattern; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tableType; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      PATTERN((short)2, "pattern"),
      TABLE_TYPE((short)3, "tableType");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // PATTERN
            return PATTERN;
          case 3: // TABLE_TYPE
            return TABLE_TYPE;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PATTERN, new org.apache.thrift.meta_data.FieldMetaData("pattern", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TABLE_TYPE, new org.apache.thrift.meta_data.FieldMetaData("tableType", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_tables_by_type_args.class, metaDataMap);
    }

    public get_tables_by_type_args() {
    }

    public get_tables_by_type_args(
      java.lang.String db_name,
      java.lang.String pattern,
      java.lang.String tableType)
    {
      this();
      this.db_name = db_name;
      this.pattern = pattern;
      this.tableType = tableType;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_tables_by_type_args(get_tables_by_type_args other) {
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetPattern()) {
        this.pattern = other.pattern;
      }
      if (other.isSetTableType()) {
        this.tableType = other.tableType;
      }
    }

    public get_tables_by_type_args deepCopy() {
      return new get_tables_by_type_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.pattern = null;
      this.tableType = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getPattern() {
      return this.pattern;
    }

    public void setPattern(@org.apache.thrift.annotation.Nullable java.lang.String pattern) {
      this.pattern = pattern;
    }

    public void unsetPattern() {
      this.pattern = null;
    }

    /** Returns true if field pattern is set (has been assigned a value) and false otherwise */
    public boolean isSetPattern() {
      return this.pattern != null;
    }

    public void setPatternIsSet(boolean value) {
      if (!value) {
        this.pattern = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTableType() {
      return this.tableType;
    }

    public void setTableType(@org.apache.thrift.annotation.Nullable java.lang.String tableType) {
      this.tableType = tableType;
    }

    public void unsetTableType() {
      this.tableType = null;
    }

    /** Returns true if field tableType is set (has been assigned a value) and false otherwise */
    public boolean isSetTableType() {
      return this.tableType != null;
    }

    public void setTableTypeIsSet(boolean value) {
      if (!value) {
        this.tableType = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case PATTERN:
        if (value == null) {
          unsetPattern();
        } else {
          setPattern((java.lang.String)value);
        }
        break;

      case TABLE_TYPE:
        if (value == null) {
          unsetTableType();
        } else {
          setTableType((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case PATTERN:
        return getPattern();

      case TABLE_TYPE:
        return getTableType();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case PATTERN:
        return isSetPattern();
      case TABLE_TYPE:
        return isSetTableType();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_tables_by_type_args)
        return this.equals((get_tables_by_type_args)that);
      return false;
    }

    public boolean equals(get_tables_by_type_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_pattern = true && this.isSetPattern();
      boolean that_present_pattern = true && that.isSetPattern();
      if (this_present_pattern || that_present_pattern) {
        if (!(this_present_pattern && that_present_pattern))
          return false;
        if (!this.pattern.equals(that.pattern))
          return false;
      }

      boolean this_present_tableType = true && this.isSetTableType();
      boolean that_present_tableType = true && that.isSetTableType();
      if (this_present_tableType || that_present_tableType) {
        if (!(this_present_tableType && that_present_tableType))
          return false;
        if (!this.tableType.equals(that.tableType))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetPattern()) ? 131071 : 524287);
      if (isSetPattern())
        hashCode = hashCode * 8191 + pattern.hashCode();

      hashCode = hashCode * 8191 + ((isSetTableType()) ? 131071 : 524287);
      if (isSetTableType())
        hashCode = hashCode * 8191 + tableType.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_tables_by_type_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetPattern(), other.isSetPattern());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPattern()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.pattern, other.pattern);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTableType(), other.isSetTableType());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableType()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableType, other.tableType);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_tables_by_type_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("pattern:");
      if (this.pattern == null) {
        sb.append("null");
      } else {
        sb.append(this.pattern);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableType:");
      if (this.tableType == null) {
        sb.append("null");
      } else {
        sb.append(this.tableType);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_tables_by_type_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_tables_by_type_argsStandardScheme getScheme() {
        return new get_tables_by_type_argsStandardScheme();
      }
    }

    private static class get_tables_by_type_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_tables_by_type_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_tables_by_type_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // PATTERN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.pattern = iprot.readString();
                struct.setPatternIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // TABLE_TYPE
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableType = iprot.readString();
                struct.setTableTypeIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_tables_by_type_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.pattern != null) {
          oprot.writeFieldBegin(PATTERN_FIELD_DESC);
          oprot.writeString(struct.pattern);
          oprot.writeFieldEnd();
        }
        if (struct.tableType != null) {
          oprot.writeFieldBegin(TABLE_TYPE_FIELD_DESC);
          oprot.writeString(struct.tableType);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_tables_by_type_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_tables_by_type_argsTupleScheme getScheme() {
        return new get_tables_by_type_argsTupleScheme();
      }
    }

    private static class get_tables_by_type_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_tables_by_type_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_tables_by_type_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetPattern()) {
          optionals.set(1);
        }
        if (struct.isSetTableType()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetPattern()) {
          oprot.writeString(struct.pattern);
        }
        if (struct.isSetTableType()) {
          oprot.writeString(struct.tableType);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_tables_by_type_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.pattern = iprot.readString();
          struct.setPatternIsSet(true);
        }
        if (incoming.get(2)) {
          struct.tableType = iprot.readString();
          struct.setTableTypeIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_tables_by_type_result implements org.apache.thrift.TBase<get_tables_by_type_result, get_tables_by_type_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_tables_by_type_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_tables_by_type_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_tables_by_type_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_tables_by_type_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_tables_by_type_result.class, metaDataMap);
    }

    public get_tables_by_type_result() {
    }

    public get_tables_by_type_result(
      java.util.List<java.lang.String> success,
      MetaException o1)
    {
      this();
      this.success = success;
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_tables_by_type_result(get_tables_by_type_result other) {
      if (other.isSetSuccess()) {
        java.util.List<java.lang.String> __this__success = new java.util.ArrayList<java.lang.String>(other.success);
        this.success = __this__success;
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public get_tables_by_type_result deepCopy() {
      return new get_tables_by_type_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(java.lang.String elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<java.lang.String>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<java.lang.String>)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_tables_by_type_result)
        return this.equals((get_tables_by_type_result)that);
      return false;
    }

    public boolean equals(get_tables_by_type_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_tables_by_type_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_tables_by_type_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_tables_by_type_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_tables_by_type_resultStandardScheme getScheme() {
        return new get_tables_by_type_resultStandardScheme();
      }
    }

    private static class get_tables_by_type_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_tables_by_type_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_tables_by_type_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1042 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<java.lang.String>(_list1042.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem1043;
                  for (int _i1044 = 0; _i1044 < _list1042.size; ++_i1044)
                  {
                    _elem1043 = iprot.readString();
                    struct.success.add(_elem1043);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_tables_by_type_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.success.size()));
            for (java.lang.String _iter1045 : struct.success)
            {
              oprot.writeString(_iter1045);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_tables_by_type_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_tables_by_type_resultTupleScheme getScheme() {
        return new get_tables_by_type_resultTupleScheme();
      }
    }

    private static class get_tables_by_type_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_tables_by_type_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_tables_by_type_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (java.lang.String _iter1046 : struct.success)
            {
              oprot.writeString(_iter1046);
            }
          }
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_tables_by_type_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list1047 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.success = new java.util.ArrayList<java.lang.String>(_list1047.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem1048;
            for (int _i1049 = 0; _i1049 < _list1047.size; ++_i1049)
            {
              _elem1048 = iprot.readString();
              struct.success.add(_elem1048);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_materialized_views_for_rewriting_args implements org.apache.thrift.TBase<get_materialized_views_for_rewriting_args, get_materialized_views_for_rewriting_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_materialized_views_for_rewriting_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_materialized_views_for_rewriting_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_materialized_views_for_rewriting_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_materialized_views_for_rewriting_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_materialized_views_for_rewriting_args.class, metaDataMap);
    }

    public get_materialized_views_for_rewriting_args() {
    }

    public get_materialized_views_for_rewriting_args(
      java.lang.String db_name)
    {
      this();
      this.db_name = db_name;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_materialized_views_for_rewriting_args(get_materialized_views_for_rewriting_args other) {
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
    }

    public get_materialized_views_for_rewriting_args deepCopy() {
      return new get_materialized_views_for_rewriting_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_materialized_views_for_rewriting_args)
        return this.equals((get_materialized_views_for_rewriting_args)that);
      return false;
    }

    public boolean equals(get_materialized_views_for_rewriting_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_materialized_views_for_rewriting_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_materialized_views_for_rewriting_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_materialized_views_for_rewriting_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_materialized_views_for_rewriting_argsStandardScheme getScheme() {
        return new get_materialized_views_for_rewriting_argsStandardScheme();
      }
    }

    private static class get_materialized_views_for_rewriting_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_materialized_views_for_rewriting_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_materialized_views_for_rewriting_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_materialized_views_for_rewriting_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_materialized_views_for_rewriting_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_materialized_views_for_rewriting_argsTupleScheme getScheme() {
        return new get_materialized_views_for_rewriting_argsTupleScheme();
      }
    }

    private static class get_materialized_views_for_rewriting_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_materialized_views_for_rewriting_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_materialized_views_for_rewriting_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_materialized_views_for_rewriting_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_materialized_views_for_rewriting_result implements org.apache.thrift.TBase<get_materialized_views_for_rewriting_result, get_materialized_views_for_rewriting_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_materialized_views_for_rewriting_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_materialized_views_for_rewriting_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_materialized_views_for_rewriting_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_materialized_views_for_rewriting_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_materialized_views_for_rewriting_result.class, metaDataMap);
    }

    public get_materialized_views_for_rewriting_result() {
    }

    public get_materialized_views_for_rewriting_result(
      java.util.List<java.lang.String> success,
      MetaException o1)
    {
      this();
      this.success = success;
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_materialized_views_for_rewriting_result(get_materialized_views_for_rewriting_result other) {
      if (other.isSetSuccess()) {
        java.util.List<java.lang.String> __this__success = new java.util.ArrayList<java.lang.String>(other.success);
        this.success = __this__success;
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public get_materialized_views_for_rewriting_result deepCopy() {
      return new get_materialized_views_for_rewriting_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(java.lang.String elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<java.lang.String>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<java.lang.String>)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_materialized_views_for_rewriting_result)
        return this.equals((get_materialized_views_for_rewriting_result)that);
      return false;
    }

    public boolean equals(get_materialized_views_for_rewriting_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_materialized_views_for_rewriting_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_materialized_views_for_rewriting_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_materialized_views_for_rewriting_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_materialized_views_for_rewriting_resultStandardScheme getScheme() {
        return new get_materialized_views_for_rewriting_resultStandardScheme();
      }
    }

    private static class get_materialized_views_for_rewriting_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_materialized_views_for_rewriting_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_materialized_views_for_rewriting_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1050 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<java.lang.String>(_list1050.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem1051;
                  for (int _i1052 = 0; _i1052 < _list1050.size; ++_i1052)
                  {
                    _elem1051 = iprot.readString();
                    struct.success.add(_elem1051);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_materialized_views_for_rewriting_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.success.size()));
            for (java.lang.String _iter1053 : struct.success)
            {
              oprot.writeString(_iter1053);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_materialized_views_for_rewriting_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_materialized_views_for_rewriting_resultTupleScheme getScheme() {
        return new get_materialized_views_for_rewriting_resultTupleScheme();
      }
    }

    private static class get_materialized_views_for_rewriting_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_materialized_views_for_rewriting_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_materialized_views_for_rewriting_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (java.lang.String _iter1054 : struct.success)
            {
              oprot.writeString(_iter1054);
            }
          }
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_materialized_views_for_rewriting_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list1055 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.success = new java.util.ArrayList<java.lang.String>(_list1055.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem1056;
            for (int _i1057 = 0; _i1057 < _list1055.size; ++_i1057)
            {
              _elem1056 = iprot.readString();
              struct.success.add(_elem1056);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_meta_args implements org.apache.thrift.TBase<get_table_meta_args, get_table_meta_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_table_meta_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_table_meta_args");

    private static final org.apache.thrift.protocol.TField DB_PATTERNS_FIELD_DESC = new org.apache.thrift.protocol.TField("db_patterns", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_PATTERNS_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_patterns", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField TBL_TYPES_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_types", org.apache.thrift.protocol.TType.LIST, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_table_meta_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_table_meta_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_patterns; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_patterns; // required
    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> tbl_types; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_PATTERNS((short)1, "db_patterns"),
      TBL_PATTERNS((short)2, "tbl_patterns"),
      TBL_TYPES((short)3, "tbl_types");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_PATTERNS
            return DB_PATTERNS;
          case 2: // TBL_PATTERNS
            return TBL_PATTERNS;
          case 3: // TBL_TYPES
            return TBL_TYPES;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_PATTERNS, new org.apache.thrift.meta_data.FieldMetaData("db_patterns", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_PATTERNS, new org.apache.thrift.meta_data.FieldMetaData("tbl_patterns", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_TYPES, new org.apache.thrift.meta_data.FieldMetaData("tbl_types", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_table_meta_args.class, metaDataMap);
    }

    public get_table_meta_args() {
    }

    public get_table_meta_args(
      java.lang.String db_patterns,
      java.lang.String tbl_patterns,
      java.util.List<java.lang.String> tbl_types)
    {
      this();
      this.db_patterns = db_patterns;
      this.tbl_patterns = tbl_patterns;
      this.tbl_types = tbl_types;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_table_meta_args(get_table_meta_args other) {
      if (other.isSetDb_patterns()) {
        this.db_patterns = other.db_patterns;
      }
      if (other.isSetTbl_patterns()) {
        this.tbl_patterns = other.tbl_patterns;
      }
      if (other.isSetTbl_types()) {
        java.util.List<java.lang.String> __this__tbl_types = new java.util.ArrayList<java.lang.String>(other.tbl_types);
        this.tbl_types = __this__tbl_types;
      }
    }

    public get_table_meta_args deepCopy() {
      return new get_table_meta_args(this);
    }

    @Override
    public void clear() {
      this.db_patterns = null;
      this.tbl_patterns = null;
      this.tbl_types = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_patterns() {
      return this.db_patterns;
    }

    public void setDb_patterns(@org.apache.thrift.annotation.Nullable java.lang.String db_patterns) {
      this.db_patterns = db_patterns;
    }

    public void unsetDb_patterns() {
      this.db_patterns = null;
    }

    /** Returns true if field db_patterns is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_patterns() {
      return this.db_patterns != null;
    }

    public void setDb_patternsIsSet(boolean value) {
      if (!value) {
        this.db_patterns = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_patterns() {
      return this.tbl_patterns;
    }

    public void setTbl_patterns(@org.apache.thrift.annotation.Nullable java.lang.String tbl_patterns) {
      this.tbl_patterns = tbl_patterns;
    }

    public void unsetTbl_patterns() {
      this.tbl_patterns = null;
    }

    /** Returns true if field tbl_patterns is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_patterns() {
      return this.tbl_patterns != null;
    }

    public void setTbl_patternsIsSet(boolean value) {
      if (!value) {
        this.tbl_patterns = null;
      }
    }

    public int getTbl_typesSize() {
      return (this.tbl_types == null) ? 0 : this.tbl_types.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getTbl_typesIterator() {
      return (this.tbl_types == null) ? null : this.tbl_types.iterator();
    }

    public void addToTbl_types(java.lang.String elem) {
      if (this.tbl_types == null) {
        this.tbl_types = new java.util.ArrayList<java.lang.String>();
      }
      this.tbl_types.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getTbl_types() {
      return this.tbl_types;
    }

    public void setTbl_types(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> tbl_types) {
      this.tbl_types = tbl_types;
    }

    public void unsetTbl_types() {
      this.tbl_types = null;
    }

    /** Returns true if field tbl_types is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_types() {
      return this.tbl_types != null;
    }

    public void setTbl_typesIsSet(boolean value) {
      if (!value) {
        this.tbl_types = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_PATTERNS:
        if (value == null) {
          unsetDb_patterns();
        } else {
          setDb_patterns((java.lang.String)value);
        }
        break;

      case TBL_PATTERNS:
        if (value == null) {
          unsetTbl_patterns();
        } else {
          setTbl_patterns((java.lang.String)value);
        }
        break;

      case TBL_TYPES:
        if (value == null) {
          unsetTbl_types();
        } else {
          setTbl_types((java.util.List<java.lang.String>)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_PATTERNS:
        return getDb_patterns();

      case TBL_PATTERNS:
        return getTbl_patterns();

      case TBL_TYPES:
        return getTbl_types();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_PATTERNS:
        return isSetDb_patterns();
      case TBL_PATTERNS:
        return isSetTbl_patterns();
      case TBL_TYPES:
        return isSetTbl_types();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_table_meta_args)
        return this.equals((get_table_meta_args)that);
      return false;
    }

    public boolean equals(get_table_meta_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_patterns = true && this.isSetDb_patterns();
      boolean that_present_db_patterns = true && that.isSetDb_patterns();
      if (this_present_db_patterns || that_present_db_patterns) {
        if (!(this_present_db_patterns && that_present_db_patterns))
          return false;
        if (!this.db_patterns.equals(that.db_patterns))
          return false;
      }

      boolean this_present_tbl_patterns = true && this.isSetTbl_patterns();
      boolean that_present_tbl_patterns = true && that.isSetTbl_patterns();
      if (this_present_tbl_patterns || that_present_tbl_patterns) {
        if (!(this_present_tbl_patterns && that_present_tbl_patterns))
          return false;
        if (!this.tbl_patterns.equals(that.tbl_patterns))
          return false;
      }

      boolean this_present_tbl_types = true && this.isSetTbl_types();
      boolean that_present_tbl_types = true && that.isSetTbl_types();
      if (this_present_tbl_types || that_present_tbl_types) {
        if (!(this_present_tbl_types && that_present_tbl_types))
          return false;
        if (!this.tbl_types.equals(that.tbl_types))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_patterns()) ? 131071 : 524287);
      if (isSetDb_patterns())
        hashCode = hashCode * 8191 + db_patterns.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_patterns()) ? 131071 : 524287);
      if (isSetTbl_patterns())
        hashCode = hashCode * 8191 + tbl_patterns.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_types()) ? 131071 : 524287);
      if (isSetTbl_types())
        hashCode = hashCode * 8191 + tbl_types.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_table_meta_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_patterns(), other.isSetDb_patterns());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_patterns()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_patterns, other.db_patterns);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_patterns(), other.isSetTbl_patterns());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_patterns()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_patterns, other.tbl_patterns);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_types(), other.isSetTbl_types());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_types()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_types, other.tbl_types);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_table_meta_args(");
      boolean first = true;

      sb.append("db_patterns:");
      if (this.db_patterns == null) {
        sb.append("null");
      } else {
        sb.append(this.db_patterns);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_patterns:");
      if (this.tbl_patterns == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_patterns);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_types:");
      if (this.tbl_types == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_types);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_table_meta_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_table_meta_argsStandardScheme getScheme() {
        return new get_table_meta_argsStandardScheme();
      }
    }

    private static class get_table_meta_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_table_meta_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_table_meta_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_PATTERNS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_patterns = iprot.readString();
                struct.setDb_patternsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_PATTERNS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_patterns = iprot.readString();
                struct.setTbl_patternsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // TBL_TYPES
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1058 = iprot.readListBegin();
                  struct.tbl_types = new java.util.ArrayList<java.lang.String>(_list1058.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem1059;
                  for (int _i1060 = 0; _i1060 < _list1058.size; ++_i1060)
                  {
                    _elem1059 = iprot.readString();
                    struct.tbl_types.add(_elem1059);
                  }
                  iprot.readListEnd();
                }
                struct.setTbl_typesIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_table_meta_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_patterns != null) {
          oprot.writeFieldBegin(DB_PATTERNS_FIELD_DESC);
          oprot.writeString(struct.db_patterns);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_patterns != null) {
          oprot.writeFieldBegin(TBL_PATTERNS_FIELD_DESC);
          oprot.writeString(struct.tbl_patterns);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_types != null) {
          oprot.writeFieldBegin(TBL_TYPES_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.tbl_types.size()));
            for (java.lang.String _iter1061 : struct.tbl_types)
            {
              oprot.writeString(_iter1061);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_table_meta_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_table_meta_argsTupleScheme getScheme() {
        return new get_table_meta_argsTupleScheme();
      }
    }

    private static class get_table_meta_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_table_meta_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_table_meta_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_patterns()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_patterns()) {
          optionals.set(1);
        }
        if (struct.isSetTbl_types()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetDb_patterns()) {
          oprot.writeString(struct.db_patterns);
        }
        if (struct.isSetTbl_patterns()) {
          oprot.writeString(struct.tbl_patterns);
        }
        if (struct.isSetTbl_types()) {
          {
            oprot.writeI32(struct.tbl_types.size());
            for (java.lang.String _iter1062 : struct.tbl_types)
            {
              oprot.writeString(_iter1062);
            }
          }
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_table_meta_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.db_patterns = iprot.readString();
          struct.setDb_patternsIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_patterns = iprot.readString();
          struct.setTbl_patternsIsSet(true);
        }
        if (incoming.get(2)) {
          {
            org.apache.thrift.protocol.TList _list1063 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.tbl_types = new java.util.ArrayList<java.lang.String>(_list1063.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem1064;
            for (int _i1065 = 0; _i1065 < _list1063.size; ++_i1065)
            {
              _elem1064 = iprot.readString();
              struct.tbl_types.add(_elem1064);
            }
          }
          struct.setTbl_typesIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_meta_result implements org.apache.thrift.TBase<get_table_meta_result, get_table_meta_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_table_meta_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_table_meta_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_table_meta_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_table_meta_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<TableMeta> success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TableMeta.class))));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_table_meta_result.class, metaDataMap);
    }

    public get_table_meta_result() {
    }

    public get_table_meta_result(
      java.util.List<TableMeta> success,
      MetaException o1)
    {
      this();
      this.success = success;
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_table_meta_result(get_table_meta_result other) {
      if (other.isSetSuccess()) {
        java.util.List<TableMeta> __this__success = new java.util.ArrayList<TableMeta>(other.success.size());
        for (TableMeta other_element : other.success) {
          __this__success.add(new TableMeta(other_element));
        }
        this.success = __this__success;
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public get_table_meta_result deepCopy() {
      return new get_table_meta_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<TableMeta> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(TableMeta elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<TableMeta>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<TableMeta> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<TableMeta> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<TableMeta>)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_table_meta_result)
        return this.equals((get_table_meta_result)that);
      return false;
    }

    public boolean equals(get_table_meta_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_table_meta_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_table_meta_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_table_meta_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_table_meta_resultStandardScheme getScheme() {
        return new get_table_meta_resultStandardScheme();
      }
    }

    private static class get_table_meta_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_table_meta_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_table_meta_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1066 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<TableMeta>(_list1066.size);
                  @org.apache.thrift.annotation.Nullable TableMeta _elem1067;
                  for (int _i1068 = 0; _i1068 < _list1066.size; ++_i1068)
                  {
                    _elem1067 = new TableMeta();
                    _elem1067.read(iprot);
                    struct.success.add(_elem1067);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_table_meta_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
            for (TableMeta _iter1069 : struct.success)
            {
              _iter1069.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_table_meta_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_table_meta_resultTupleScheme getScheme() {
        return new get_table_meta_resultTupleScheme();
      }
    }

    private static class get_table_meta_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_table_meta_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_table_meta_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (TableMeta _iter1070 : struct.success)
            {
              _iter1070.write(oprot);
            }
          }
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_table_meta_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list1071 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
            struct.success = new java.util.ArrayList<TableMeta>(_list1071.size);
            @org.apache.thrift.annotation.Nullable TableMeta _elem1072;
            for (int _i1073 = 0; _i1073 < _list1071.size; ++_i1073)
            {
              _elem1072 = new TableMeta();
              _elem1072.read(iprot);
              struct.success.add(_elem1072);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_all_tables_args implements org.apache.thrift.TBase<get_all_tables_args, get_all_tables_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_all_tables_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_all_tables_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_all_tables_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_all_tables_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_all_tables_args.class, metaDataMap);
    }

    public get_all_tables_args() {
    }

    public get_all_tables_args(
      java.lang.String db_name)
    {
      this();
      this.db_name = db_name;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_all_tables_args(get_all_tables_args other) {
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
    }

    public get_all_tables_args deepCopy() {
      return new get_all_tables_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_all_tables_args)
        return this.equals((get_all_tables_args)that);
      return false;
    }

    public boolean equals(get_all_tables_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_all_tables_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_all_tables_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_all_tables_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_all_tables_argsStandardScheme getScheme() {
        return new get_all_tables_argsStandardScheme();
      }
    }

    private static class get_all_tables_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_all_tables_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_all_tables_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_all_tables_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_all_tables_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_all_tables_argsTupleScheme getScheme() {
        return new get_all_tables_argsTupleScheme();
      }
    }

    private static class get_all_tables_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_all_tables_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_all_tables_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_all_tables_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_all_tables_result implements org.apache.thrift.TBase<get_all_tables_result, get_all_tables_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_all_tables_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_all_tables_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_all_tables_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_all_tables_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_all_tables_result.class, metaDataMap);
    }

    public get_all_tables_result() {
    }

    public get_all_tables_result(
      java.util.List<java.lang.String> success,
      MetaException o1)
    {
      this();
      this.success = success;
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_all_tables_result(get_all_tables_result other) {
      if (other.isSetSuccess()) {
        java.util.List<java.lang.String> __this__success = new java.util.ArrayList<java.lang.String>(other.success);
        this.success = __this__success;
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public get_all_tables_result deepCopy() {
      return new get_all_tables_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(java.lang.String elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<java.lang.String>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<java.lang.String>)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_all_tables_result)
        return this.equals((get_all_tables_result)that);
      return false;
    }

    public boolean equals(get_all_tables_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_all_tables_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_all_tables_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_all_tables_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_all_tables_resultStandardScheme getScheme() {
        return new get_all_tables_resultStandardScheme();
      }
    }

    private static class get_all_tables_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_all_tables_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_all_tables_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1074 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<java.lang.String>(_list1074.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem1075;
                  for (int _i1076 = 0; _i1076 < _list1074.size; ++_i1076)
                  {
                    _elem1075 = iprot.readString();
                    struct.success.add(_elem1075);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_all_tables_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.success.size()));
            for (java.lang.String _iter1077 : struct.success)
            {
              oprot.writeString(_iter1077);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_all_tables_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_all_tables_resultTupleScheme getScheme() {
        return new get_all_tables_resultTupleScheme();
      }
    }

    private static class get_all_tables_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_all_tables_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_all_tables_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (java.lang.String _iter1078 : struct.success)
            {
              oprot.writeString(_iter1078);
            }
          }
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_all_tables_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list1079 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.success = new java.util.ArrayList<java.lang.String>(_list1079.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem1080;
            for (int _i1081 = 0; _i1081 < _list1079.size; ++_i1081)
            {
              _elem1080 = iprot.readString();
              struct.success.add(_elem1080);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_args implements org.apache.thrift.TBase<get_table_args, get_table_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_table_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_table_args");

    private static final org.apache.thrift.protocol.TField DBNAME_FIELD_DESC = new org.apache.thrift.protocol.TField("dbname", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_table_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_table_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String dbname; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DBNAME((short)1, "dbname"),
      TBL_NAME((short)2, "tbl_name");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DBNAME
            return DBNAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DBNAME, new org.apache.thrift.meta_data.FieldMetaData("dbname", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_table_args.class, metaDataMap);
    }

    public get_table_args() {
    }

    public get_table_args(
      java.lang.String dbname,
      java.lang.String tbl_name)
    {
      this();
      this.dbname = dbname;
      this.tbl_name = tbl_name;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_table_args(get_table_args other) {
      if (other.isSetDbname()) {
        this.dbname = other.dbname;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
    }

    public get_table_args deepCopy() {
      return new get_table_args(this);
    }

    @Override
    public void clear() {
      this.dbname = null;
      this.tbl_name = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDbname() {
      return this.dbname;
    }

    public void setDbname(@org.apache.thrift.annotation.Nullable java.lang.String dbname) {
      this.dbname = dbname;
    }

    public void unsetDbname() {
      this.dbname = null;
    }

    /** Returns true if field dbname is set (has been assigned a value) and false otherwise */
    public boolean isSetDbname() {
      return this.dbname != null;
    }

    public void setDbnameIsSet(boolean value) {
      if (!value) {
        this.dbname = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DBNAME:
        if (value == null) {
          unsetDbname();
        } else {
          setDbname((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DBNAME:
        return getDbname();

      case TBL_NAME:
        return getTbl_name();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DBNAME:
        return isSetDbname();
      case TBL_NAME:
        return isSetTbl_name();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_table_args)
        return this.equals((get_table_args)that);
      return false;
    }

    public boolean equals(get_table_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_dbname = true && this.isSetDbname();
      boolean that_present_dbname = true && that.isSetDbname();
      if (this_present_dbname || that_present_dbname) {
        if (!(this_present_dbname && that_present_dbname))
          return false;
        if (!this.dbname.equals(that.dbname))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDbname()) ? 131071 : 524287);
      if (isSetDbname())
        hashCode = hashCode * 8191 + dbname.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_table_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDbname(), other.isSetDbname());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDbname()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dbname, other.dbname);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_table_args(");
      boolean first = true;

      sb.append("dbname:");
      if (this.dbname == null) {
        sb.append("null");
      } else {
        sb.append(this.dbname);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_table_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_table_argsStandardScheme getScheme() {
        return new get_table_argsStandardScheme();
      }
    }

    private static class get_table_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_table_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_table_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DBNAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.dbname = iprot.readString();
                struct.setDbnameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_table_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.dbname != null) {
          oprot.writeFieldBegin(DBNAME_FIELD_DESC);
          oprot.writeString(struct.dbname);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_table_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_table_argsTupleScheme getScheme() {
        return new get_table_argsTupleScheme();
      }
    }

    private static class get_table_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_table_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_table_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDbname()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetDbname()) {
          oprot.writeString(struct.dbname);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_table_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.dbname = iprot.readString();
          struct.setDbnameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_result implements org.apache.thrift.TBase<get_table_result, get_table_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_table_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_table_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_table_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_table_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable Table success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Table.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_table_result.class, metaDataMap);
    }

    public get_table_result() {
    }

    public get_table_result(
      Table success,
      MetaException o1,
      NoSuchObjectException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_table_result(get_table_result other) {
      if (other.isSetSuccess()) {
        this.success = new Table(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchObjectException(other.o2);
      }
    }

    public get_table_result deepCopy() {
      return new get_table_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public Table getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable Table success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Table)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchObjectException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_table_result)
        return this.equals((get_table_result)that);
      return false;
    }

    public boolean equals(get_table_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_table_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_table_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_table_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_table_resultStandardScheme getScheme() {
        return new get_table_resultStandardScheme();
      }
    }

    private static class get_table_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_table_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_table_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new Table();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_table_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_table_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_table_resultTupleScheme getScheme() {
        return new get_table_resultTupleScheme();
      }
    }

    private static class get_table_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_table_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_table_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_table_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = new Table();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new NoSuchObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_objects_by_name_args implements org.apache.thrift.TBase<get_table_objects_by_name_args, get_table_objects_by_name_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_table_objects_by_name_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_table_objects_by_name_args");

    private static final org.apache.thrift.protocol.TField DBNAME_FIELD_DESC = new org.apache.thrift.protocol.TField("dbname", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAMES_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_names", org.apache.thrift.protocol.TType.LIST, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_table_objects_by_name_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_table_objects_by_name_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String dbname; // required
    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> tbl_names; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DBNAME((short)1, "dbname"),
      TBL_NAMES((short)2, "tbl_names");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DBNAME
            return DBNAME;
          case 2: // TBL_NAMES
            return TBL_NAMES;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DBNAME, new org.apache.thrift.meta_data.FieldMetaData("dbname", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAMES, new org.apache.thrift.meta_data.FieldMetaData("tbl_names", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_table_objects_by_name_args.class, metaDataMap);
    }

    public get_table_objects_by_name_args() {
    }

    public get_table_objects_by_name_args(
      java.lang.String dbname,
      java.util.List<java.lang.String> tbl_names)
    {
      this();
      this.dbname = dbname;
      this.tbl_names = tbl_names;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_table_objects_by_name_args(get_table_objects_by_name_args other) {
      if (other.isSetDbname()) {
        this.dbname = other.dbname;
      }
      if (other.isSetTbl_names()) {
        java.util.List<java.lang.String> __this__tbl_names = new java.util.ArrayList<java.lang.String>(other.tbl_names);
        this.tbl_names = __this__tbl_names;
      }
    }

    public get_table_objects_by_name_args deepCopy() {
      return new get_table_objects_by_name_args(this);
    }

    @Override
    public void clear() {
      this.dbname = null;
      this.tbl_names = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDbname() {
      return this.dbname;
    }

    public void setDbname(@org.apache.thrift.annotation.Nullable java.lang.String dbname) {
      this.dbname = dbname;
    }

    public void unsetDbname() {
      this.dbname = null;
    }

    /** Returns true if field dbname is set (has been assigned a value) and false otherwise */
    public boolean isSetDbname() {
      return this.dbname != null;
    }

    public void setDbnameIsSet(boolean value) {
      if (!value) {
        this.dbname = null;
      }
    }

    public int getTbl_namesSize() {
      return (this.tbl_names == null) ? 0 : this.tbl_names.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getTbl_namesIterator() {
      return (this.tbl_names == null) ? null : this.tbl_names.iterator();
    }

    public void addToTbl_names(java.lang.String elem) {
      if (this.tbl_names == null) {
        this.tbl_names = new java.util.ArrayList<java.lang.String>();
      }
      this.tbl_names.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getTbl_names() {
      return this.tbl_names;
    }

    public void setTbl_names(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> tbl_names) {
      this.tbl_names = tbl_names;
    }

    public void unsetTbl_names() {
      this.tbl_names = null;
    }

    /** Returns true if field tbl_names is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_names() {
      return this.tbl_names != null;
    }

    public void setTbl_namesIsSet(boolean value) {
      if (!value) {
        this.tbl_names = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DBNAME:
        if (value == null) {
          unsetDbname();
        } else {
          setDbname((java.lang.String)value);
        }
        break;

      case TBL_NAMES:
        if (value == null) {
          unsetTbl_names();
        } else {
          setTbl_names((java.util.List<java.lang.String>)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DBNAME:
        return getDbname();

      case TBL_NAMES:
        return getTbl_names();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DBNAME:
        return isSetDbname();
      case TBL_NAMES:
        return isSetTbl_names();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_table_objects_by_name_args)
        return this.equals((get_table_objects_by_name_args)that);
      return false;
    }

    public boolean equals(get_table_objects_by_name_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_dbname = true && this.isSetDbname();
      boolean that_present_dbname = true && that.isSetDbname();
      if (this_present_dbname || that_present_dbname) {
        if (!(this_present_dbname && that_present_dbname))
          return false;
        if (!this.dbname.equals(that.dbname))
          return false;
      }

      boolean this_present_tbl_names = true && this.isSetTbl_names();
      boolean that_present_tbl_names = true && that.isSetTbl_names();
      if (this_present_tbl_names || that_present_tbl_names) {
        if (!(this_present_tbl_names && that_present_tbl_names))
          return false;
        if (!this.tbl_names.equals(that.tbl_names))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDbname()) ? 131071 : 524287);
      if (isSetDbname())
        hashCode = hashCode * 8191 + dbname.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_names()) ? 131071 : 524287);
      if (isSetTbl_names())
        hashCode = hashCode * 8191 + tbl_names.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_table_objects_by_name_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDbname(), other.isSetDbname());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDbname()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dbname, other.dbname);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_names(), other.isSetTbl_names());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_names()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_names, other.tbl_names);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_table_objects_by_name_args(");
      boolean first = true;

      sb.append("dbname:");
      if (this.dbname == null) {
        sb.append("null");
      } else {
        sb.append(this.dbname);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_names:");
      if (this.tbl_names == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_names);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_table_objects_by_name_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_table_objects_by_name_argsStandardScheme getScheme() {
        return new get_table_objects_by_name_argsStandardScheme();
      }
    }

    private static class get_table_objects_by_name_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_table_objects_by_name_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_table_objects_by_name_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DBNAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.dbname = iprot.readString();
                struct.setDbnameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAMES
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1082 = iprot.readListBegin();
                  struct.tbl_names = new java.util.ArrayList<java.lang.String>(_list1082.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem1083;
                  for (int _i1084 = 0; _i1084 < _list1082.size; ++_i1084)
                  {
                    _elem1083 = iprot.readString();
                    struct.tbl_names.add(_elem1083);
                  }
                  iprot.readListEnd();
                }
                struct.setTbl_namesIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_table_objects_by_name_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.dbname != null) {
          oprot.writeFieldBegin(DBNAME_FIELD_DESC);
          oprot.writeString(struct.dbname);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_names != null) {
          oprot.writeFieldBegin(TBL_NAMES_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.tbl_names.size()));
            for (java.lang.String _iter1085 : struct.tbl_names)
            {
              oprot.writeString(_iter1085);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_table_objects_by_name_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_table_objects_by_name_argsTupleScheme getScheme() {
        return new get_table_objects_by_name_argsTupleScheme();
      }
    }

    private static class get_table_objects_by_name_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_table_objects_by_name_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_table_objects_by_name_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDbname()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_names()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetDbname()) {
          oprot.writeString(struct.dbname);
        }
        if (struct.isSetTbl_names()) {
          {
            oprot.writeI32(struct.tbl_names.size());
            for (java.lang.String _iter1086 : struct.tbl_names)
            {
              oprot.writeString(_iter1086);
            }
          }
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_table_objects_by_name_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.dbname = iprot.readString();
          struct.setDbnameIsSet(true);
        }
        if (incoming.get(1)) {
          {
            org.apache.thrift.protocol.TList _list1087 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.tbl_names = new java.util.ArrayList<java.lang.String>(_list1087.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem1088;
            for (int _i1089 = 0; _i1089 < _list1087.size; ++_i1089)
            {
              _elem1088 = iprot.readString();
              struct.tbl_names.add(_elem1088);
            }
          }
          struct.setTbl_namesIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_objects_by_name_result implements org.apache.thrift.TBase<get_table_objects_by_name_result, get_table_objects_by_name_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_table_objects_by_name_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_table_objects_by_name_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_table_objects_by_name_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_table_objects_by_name_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<Table> success; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Table.class))));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_table_objects_by_name_result.class, metaDataMap);
    }

    public get_table_objects_by_name_result() {
    }

    public get_table_objects_by_name_result(
      java.util.List<Table> success)
    {
      this();
      this.success = success;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_table_objects_by_name_result(get_table_objects_by_name_result other) {
      if (other.isSetSuccess()) {
        java.util.List<Table> __this__success = new java.util.ArrayList<Table>(other.success.size());
        for (Table other_element : other.success) {
          __this__success.add(new Table(other_element));
        }
        this.success = __this__success;
      }
    }

    public get_table_objects_by_name_result deepCopy() {
      return new get_table_objects_by_name_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<Table> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(Table elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<Table>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<Table> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<Table> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<Table>)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_table_objects_by_name_result)
        return this.equals((get_table_objects_by_name_result)that);
      return false;
    }

    public boolean equals(get_table_objects_by_name_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_table_objects_by_name_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_table_objects_by_name_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_table_objects_by_name_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_table_objects_by_name_resultStandardScheme getScheme() {
        return new get_table_objects_by_name_resultStandardScheme();
      }
    }

    private static class get_table_objects_by_name_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_table_objects_by_name_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_table_objects_by_name_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1090 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<Table>(_list1090.size);
                  @org.apache.thrift.annotation.Nullable Table _elem1091;
                  for (int _i1092 = 0; _i1092 < _list1090.size; ++_i1092)
                  {
                    _elem1091 = new Table();
                    _elem1091.read(iprot);
                    struct.success.add(_elem1091);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_table_objects_by_name_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
            for (Table _iter1093 : struct.success)
            {
              _iter1093.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_table_objects_by_name_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_table_objects_by_name_resultTupleScheme getScheme() {
        return new get_table_objects_by_name_resultTupleScheme();
      }
    }

    private static class get_table_objects_by_name_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_table_objects_by_name_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_table_objects_by_name_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (Table _iter1094 : struct.success)
            {
              _iter1094.write(oprot);
            }
          }
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_table_objects_by_name_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list1095 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
            struct.success = new java.util.ArrayList<Table>(_list1095.size);
            @org.apache.thrift.annotation.Nullable Table _elem1096;
            for (int _i1097 = 0; _i1097 < _list1095.size; ++_i1097)
            {
              _elem1096 = new Table();
              _elem1096.read(iprot);
              struct.success.add(_elem1096);
            }
          }
          struct.setSuccessIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_req_args implements org.apache.thrift.TBase<get_table_req_args, get_table_req_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_table_req_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_table_req_args");

    private static final org.apache.thrift.protocol.TField REQ_FIELD_DESC = new org.apache.thrift.protocol.TField("req", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_table_req_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_table_req_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable GetTableRequest req; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQ((short)1, "req");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQ
            return REQ;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQ, new org.apache.thrift.meta_data.FieldMetaData("req", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetTableRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_table_req_args.class, metaDataMap);
    }

    public get_table_req_args() {
    }

    public get_table_req_args(
      GetTableRequest req)
    {
      this();
      this.req = req;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_table_req_args(get_table_req_args other) {
      if (other.isSetReq()) {
        this.req = new GetTableRequest(other.req);
      }
    }

    public get_table_req_args deepCopy() {
      return new get_table_req_args(this);
    }

    @Override
    public void clear() {
      this.req = null;
    }

    @org.apache.thrift.annotation.Nullable
    public GetTableRequest getReq() {
      return this.req;
    }

    public void setReq(@org.apache.thrift.annotation.Nullable GetTableRequest req) {
      this.req = req;
    }

    public void unsetReq() {
      this.req = null;
    }

    /** Returns true if field req is set (has been assigned a value) and false otherwise */
    public boolean isSetReq() {
      return this.req != null;
    }

    public void setReqIsSet(boolean value) {
      if (!value) {
        this.req = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQ:
        if (value == null) {
          unsetReq();
        } else {
          setReq((GetTableRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQ:
        return getReq();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQ:
        return isSetReq();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_table_req_args)
        return this.equals((get_table_req_args)that);
      return false;
    }

    public boolean equals(get_table_req_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_req = true && this.isSetReq();
      boolean that_present_req = true && that.isSetReq();
      if (this_present_req || that_present_req) {
        if (!(this_present_req && that_present_req))
          return false;
        if (!this.req.equals(that.req))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetReq()) ? 131071 : 524287);
      if (isSetReq())
        hashCode = hashCode * 8191 + req.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_table_req_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetReq(), other.isSetReq());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetReq()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.req, other.req);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_table_req_args(");
      boolean first = true;

      sb.append("req:");
      if (this.req == null) {
        sb.append("null");
      } else {
        sb.append(this.req);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (req != null) {
        req.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_table_req_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_table_req_argsStandardScheme getScheme() {
        return new get_table_req_argsStandardScheme();
      }
    }

    private static class get_table_req_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_table_req_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_table_req_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQ
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.req = new GetTableRequest();
                struct.req.read(iprot);
                struct.setReqIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_table_req_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.req != null) {
          oprot.writeFieldBegin(REQ_FIELD_DESC);
          struct.req.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_table_req_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_table_req_argsTupleScheme getScheme() {
        return new get_table_req_argsTupleScheme();
      }
    }

    private static class get_table_req_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_table_req_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_table_req_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetReq()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetReq()) {
          struct.req.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_table_req_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.req = new GetTableRequest();
          struct.req.read(iprot);
          struct.setReqIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_req_result implements org.apache.thrift.TBase<get_table_req_result, get_table_req_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_table_req_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_table_req_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_table_req_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_table_req_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable GetTableResult success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetTableResult.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_table_req_result.class, metaDataMap);
    }

    public get_table_req_result() {
    }

    public get_table_req_result(
      GetTableResult success,
      MetaException o1,
      NoSuchObjectException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_table_req_result(get_table_req_result other) {
      if (other.isSetSuccess()) {
        this.success = new GetTableResult(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchObjectException(other.o2);
      }
    }

    public get_table_req_result deepCopy() {
      return new get_table_req_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public GetTableResult getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable GetTableResult success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((GetTableResult)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchObjectException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_table_req_result)
        return this.equals((get_table_req_result)that);
      return false;
    }

    public boolean equals(get_table_req_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_table_req_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_table_req_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_table_req_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_table_req_resultStandardScheme getScheme() {
        return new get_table_req_resultStandardScheme();
      }
    }

    private static class get_table_req_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_table_req_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_table_req_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new GetTableResult();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_table_req_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_table_req_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_table_req_resultTupleScheme getScheme() {
        return new get_table_req_resultTupleScheme();
      }
    }

    private static class get_table_req_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_table_req_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_table_req_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_table_req_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = new GetTableResult();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new NoSuchObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_objects_by_name_req_args implements org.apache.thrift.TBase<get_table_objects_by_name_req_args, get_table_objects_by_name_req_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_table_objects_by_name_req_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_table_objects_by_name_req_args");

    private static final org.apache.thrift.protocol.TField REQ_FIELD_DESC = new org.apache.thrift.protocol.TField("req", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_table_objects_by_name_req_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_table_objects_by_name_req_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable GetTablesRequest req; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQ((short)1, "req");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQ
            return REQ;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQ, new org.apache.thrift.meta_data.FieldMetaData("req", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetTablesRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_table_objects_by_name_req_args.class, metaDataMap);
    }

    public get_table_objects_by_name_req_args() {
    }

    public get_table_objects_by_name_req_args(
      GetTablesRequest req)
    {
      this();
      this.req = req;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_table_objects_by_name_req_args(get_table_objects_by_name_req_args other) {
      if (other.isSetReq()) {
        this.req = new GetTablesRequest(other.req);
      }
    }

    public get_table_objects_by_name_req_args deepCopy() {
      return new get_table_objects_by_name_req_args(this);
    }

    @Override
    public void clear() {
      this.req = null;
    }

    @org.apache.thrift.annotation.Nullable
    public GetTablesRequest getReq() {
      return this.req;
    }

    public void setReq(@org.apache.thrift.annotation.Nullable GetTablesRequest req) {
      this.req = req;
    }

    public void unsetReq() {
      this.req = null;
    }

    /** Returns true if field req is set (has been assigned a value) and false otherwise */
    public boolean isSetReq() {
      return this.req != null;
    }

    public void setReqIsSet(boolean value) {
      if (!value) {
        this.req = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQ:
        if (value == null) {
          unsetReq();
        } else {
          setReq((GetTablesRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQ:
        return getReq();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQ:
        return isSetReq();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_table_objects_by_name_req_args)
        return this.equals((get_table_objects_by_name_req_args)that);
      return false;
    }

    public boolean equals(get_table_objects_by_name_req_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_req = true && this.isSetReq();
      boolean that_present_req = true && that.isSetReq();
      if (this_present_req || that_present_req) {
        if (!(this_present_req && that_present_req))
          return false;
        if (!this.req.equals(that.req))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetReq()) ? 131071 : 524287);
      if (isSetReq())
        hashCode = hashCode * 8191 + req.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_table_objects_by_name_req_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetReq(), other.isSetReq());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetReq()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.req, other.req);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_table_objects_by_name_req_args(");
      boolean first = true;

      sb.append("req:");
      if (this.req == null) {
        sb.append("null");
      } else {
        sb.append(this.req);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (req != null) {
        req.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_table_objects_by_name_req_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_table_objects_by_name_req_argsStandardScheme getScheme() {
        return new get_table_objects_by_name_req_argsStandardScheme();
      }
    }

    private static class get_table_objects_by_name_req_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_table_objects_by_name_req_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_table_objects_by_name_req_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQ
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.req = new GetTablesRequest();
                struct.req.read(iprot);
                struct.setReqIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_table_objects_by_name_req_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.req != null) {
          oprot.writeFieldBegin(REQ_FIELD_DESC);
          struct.req.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_table_objects_by_name_req_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_table_objects_by_name_req_argsTupleScheme getScheme() {
        return new get_table_objects_by_name_req_argsTupleScheme();
      }
    }

    private static class get_table_objects_by_name_req_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_table_objects_by_name_req_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_table_objects_by_name_req_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetReq()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetReq()) {
          struct.req.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_table_objects_by_name_req_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.req = new GetTablesRequest();
          struct.req.read(iprot);
          struct.setReqIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_objects_by_name_req_result implements org.apache.thrift.TBase<get_table_objects_by_name_req_result, get_table_objects_by_name_req_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_table_objects_by_name_req_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_table_objects_by_name_req_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_table_objects_by_name_req_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_table_objects_by_name_req_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable GetTablesResult success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable InvalidOperationException o2; // required
    private @org.apache.thrift.annotation.Nullable UnknownDBException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetTablesResult.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidOperationException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UnknownDBException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_table_objects_by_name_req_result.class, metaDataMap);
    }

    public get_table_objects_by_name_req_result() {
    }

    public get_table_objects_by_name_req_result(
      GetTablesResult success,
      MetaException o1,
      InvalidOperationException o2,
      UnknownDBException o3)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_table_objects_by_name_req_result(get_table_objects_by_name_req_result other) {
      if (other.isSetSuccess()) {
        this.success = new GetTablesResult(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new InvalidOperationException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new UnknownDBException(other.o3);
      }
    }

    public get_table_objects_by_name_req_result deepCopy() {
      return new get_table_objects_by_name_req_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public GetTablesResult getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable GetTablesResult success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidOperationException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable InvalidOperationException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public UnknownDBException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable UnknownDBException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((GetTablesResult)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((InvalidOperationException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((UnknownDBException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_table_objects_by_name_req_result)
        return this.equals((get_table_objects_by_name_req_result)that);
      return false;
    }

    public boolean equals(get_table_objects_by_name_req_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_table_objects_by_name_req_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_table_objects_by_name_req_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_table_objects_by_name_req_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_table_objects_by_name_req_resultStandardScheme getScheme() {
        return new get_table_objects_by_name_req_resultStandardScheme();
      }
    }

    private static class get_table_objects_by_name_req_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_table_objects_by_name_req_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_table_objects_by_name_req_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new GetTablesResult();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new InvalidOperationException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new UnknownDBException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_table_objects_by_name_req_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_table_objects_by_name_req_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_table_objects_by_name_req_resultTupleScheme getScheme() {
        return new get_table_objects_by_name_req_resultTupleScheme();
      }
    }

    private static class get_table_objects_by_name_req_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_table_objects_by_name_req_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_table_objects_by_name_req_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_table_objects_by_name_req_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = new GetTablesResult();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new InvalidOperationException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new UnknownDBException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_materialization_invalidation_info_args implements org.apache.thrift.TBase<get_materialization_invalidation_info_args, get_materialization_invalidation_info_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_materialization_invalidation_info_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_materialization_invalidation_info_args");

    private static final org.apache.thrift.protocol.TField CREATION_METADATA_FIELD_DESC = new org.apache.thrift.protocol.TField("creation_metadata", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField VALID_TXN_LIST_FIELD_DESC = new org.apache.thrift.protocol.TField("validTxnList", org.apache.thrift.protocol.TType.STRING, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_materialization_invalidation_info_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_materialization_invalidation_info_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable CreationMetadata creation_metadata; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String validTxnList; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      CREATION_METADATA((short)1, "creation_metadata"),
      VALID_TXN_LIST((short)2, "validTxnList");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // CREATION_METADATA
            return CREATION_METADATA;
          case 2: // VALID_TXN_LIST
            return VALID_TXN_LIST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.CREATION_METADATA, new org.apache.thrift.meta_data.FieldMetaData("creation_metadata", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CreationMetadata.class)));
      tmpMap.put(_Fields.VALID_TXN_LIST, new org.apache.thrift.meta_data.FieldMetaData("validTxnList", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_materialization_invalidation_info_args.class, metaDataMap);
    }

    public get_materialization_invalidation_info_args() {
    }

    public get_materialization_invalidation_info_args(
      CreationMetadata creation_metadata,
      java.lang.String validTxnList)
    {
      this();
      this.creation_metadata = creation_metadata;
      this.validTxnList = validTxnList;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_materialization_invalidation_info_args(get_materialization_invalidation_info_args other) {
      if (other.isSetCreation_metadata()) {
        this.creation_metadata = new CreationMetadata(other.creation_metadata);
      }
      if (other.isSetValidTxnList()) {
        this.validTxnList = other.validTxnList;
      }
    }

    public get_materialization_invalidation_info_args deepCopy() {
      return new get_materialization_invalidation_info_args(this);
    }

    @Override
    public void clear() {
      this.creation_metadata = null;
      this.validTxnList = null;
    }

    @org.apache.thrift.annotation.Nullable
    public CreationMetadata getCreation_metadata() {
      return this.creation_metadata;
    }

    public void setCreation_metadata(@org.apache.thrift.annotation.Nullable CreationMetadata creation_metadata) {
      this.creation_metadata = creation_metadata;
    }

    public void unsetCreation_metadata() {
      this.creation_metadata = null;
    }

    /** Returns true if field creation_metadata is set (has been assigned a value) and false otherwise */
    public boolean isSetCreation_metadata() {
      return this.creation_metadata != null;
    }

    public void setCreation_metadataIsSet(boolean value) {
      if (!value) {
        this.creation_metadata = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getValidTxnList() {
      return this.validTxnList;
    }

    public void setValidTxnList(@org.apache.thrift.annotation.Nullable java.lang.String validTxnList) {
      this.validTxnList = validTxnList;
    }

    public void unsetValidTxnList() {
      this.validTxnList = null;
    }

    /** Returns true if field validTxnList is set (has been assigned a value) and false otherwise */
    public boolean isSetValidTxnList() {
      return this.validTxnList != null;
    }

    public void setValidTxnListIsSet(boolean value) {
      if (!value) {
        this.validTxnList = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case CREATION_METADATA:
        if (value == null) {
          unsetCreation_metadata();
        } else {
          setCreation_metadata((CreationMetadata)value);
        }
        break;

      case VALID_TXN_LIST:
        if (value == null) {
          unsetValidTxnList();
        } else {
          setValidTxnList((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case CREATION_METADATA:
        return getCreation_metadata();

      case VALID_TXN_LIST:
        return getValidTxnList();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case CREATION_METADATA:
        return isSetCreation_metadata();
      case VALID_TXN_LIST:
        return isSetValidTxnList();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_materialization_invalidation_info_args)
        return this.equals((get_materialization_invalidation_info_args)that);
      return false;
    }

    public boolean equals(get_materialization_invalidation_info_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_creation_metadata = true && this.isSetCreation_metadata();
      boolean that_present_creation_metadata = true && that.isSetCreation_metadata();
      if (this_present_creation_metadata || that_present_creation_metadata) {
        if (!(this_present_creation_metadata && that_present_creation_metadata))
          return false;
        if (!this.creation_metadata.equals(that.creation_metadata))
          return false;
      }

      boolean this_present_validTxnList = true && this.isSetValidTxnList();
      boolean that_present_validTxnList = true && that.isSetValidTxnList();
      if (this_present_validTxnList || that_present_validTxnList) {
        if (!(this_present_validTxnList && that_present_validTxnList))
          return false;
        if (!this.validTxnList.equals(that.validTxnList))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetCreation_metadata()) ? 131071 : 524287);
      if (isSetCreation_metadata())
        hashCode = hashCode * 8191 + creation_metadata.hashCode();

      hashCode = hashCode * 8191 + ((isSetValidTxnList()) ? 131071 : 524287);
      if (isSetValidTxnList())
        hashCode = hashCode * 8191 + validTxnList.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_materialization_invalidation_info_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetCreation_metadata(), other.isSetCreation_metadata());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetCreation_metadata()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.creation_metadata, other.creation_metadata);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetValidTxnList(), other.isSetValidTxnList());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetValidTxnList()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.validTxnList, other.validTxnList);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_materialization_invalidation_info_args(");
      boolean first = true;

      sb.append("creation_metadata:");
      if (this.creation_metadata == null) {
        sb.append("null");
      } else {
        sb.append(this.creation_metadata);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("validTxnList:");
      if (this.validTxnList == null) {
        sb.append("null");
      } else {
        sb.append(this.validTxnList);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (creation_metadata != null) {
        creation_metadata.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_materialization_invalidation_info_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_materialization_invalidation_info_argsStandardScheme getScheme() {
        return new get_materialization_invalidation_info_argsStandardScheme();
      }
    }

    private static class get_materialization_invalidation_info_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_materialization_invalidation_info_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_materialization_invalidation_info_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // CREATION_METADATA
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.creation_metadata = new CreationMetadata();
                struct.creation_metadata.read(iprot);
                struct.setCreation_metadataIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // VALID_TXN_LIST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.validTxnList = iprot.readString();
                struct.setValidTxnListIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_materialization_invalidation_info_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.creation_metadata != null) {
          oprot.writeFieldBegin(CREATION_METADATA_FIELD_DESC);
          struct.creation_metadata.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.validTxnList != null) {
          oprot.writeFieldBegin(VALID_TXN_LIST_FIELD_DESC);
          oprot.writeString(struct.validTxnList);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_materialization_invalidation_info_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_materialization_invalidation_info_argsTupleScheme getScheme() {
        return new get_materialization_invalidation_info_argsTupleScheme();
      }
    }

    private static class get_materialization_invalidation_info_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_materialization_invalidation_info_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_materialization_invalidation_info_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetCreation_metadata()) {
          optionals.set(0);
        }
        if (struct.isSetValidTxnList()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetCreation_metadata()) {
          struct.creation_metadata.write(oprot);
        }
        if (struct.isSetValidTxnList()) {
          oprot.writeString(struct.validTxnList);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_materialization_invalidation_info_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.creation_metadata = new CreationMetadata();
          struct.creation_metadata.read(iprot);
          struct.setCreation_metadataIsSet(true);
        }
        if (incoming.get(1)) {
          struct.validTxnList = iprot.readString();
          struct.setValidTxnListIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_materialization_invalidation_info_result implements org.apache.thrift.TBase<get_materialization_invalidation_info_result, get_materialization_invalidation_info_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_materialization_invalidation_info_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_materialization_invalidation_info_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_materialization_invalidation_info_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_materialization_invalidation_info_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable Materialization success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable InvalidOperationException o2; // required
    private @org.apache.thrift.annotation.Nullable UnknownDBException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Materialization.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidOperationException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UnknownDBException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_materialization_invalidation_info_result.class, metaDataMap);
    }

    public get_materialization_invalidation_info_result() {
    }

    public get_materialization_invalidation_info_result(
      Materialization success,
      MetaException o1,
      InvalidOperationException o2,
      UnknownDBException o3)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_materialization_invalidation_info_result(get_materialization_invalidation_info_result other) {
      if (other.isSetSuccess()) {
        this.success = new Materialization(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new InvalidOperationException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new UnknownDBException(other.o3);
      }
    }

    public get_materialization_invalidation_info_result deepCopy() {
      return new get_materialization_invalidation_info_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public Materialization getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable Materialization success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidOperationException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable InvalidOperationException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public UnknownDBException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable UnknownDBException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Materialization)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((InvalidOperationException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((UnknownDBException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_materialization_invalidation_info_result)
        return this.equals((get_materialization_invalidation_info_result)that);
      return false;
    }

    public boolean equals(get_materialization_invalidation_info_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_materialization_invalidation_info_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_materialization_invalidation_info_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_materialization_invalidation_info_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_materialization_invalidation_info_resultStandardScheme getScheme() {
        return new get_materialization_invalidation_info_resultStandardScheme();
      }
    }

    private static class get_materialization_invalidation_info_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_materialization_invalidation_info_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_materialization_invalidation_info_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new Materialization();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new InvalidOperationException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new UnknownDBException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_materialization_invalidation_info_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_materialization_invalidation_info_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_materialization_invalidation_info_resultTupleScheme getScheme() {
        return new get_materialization_invalidation_info_resultTupleScheme();
      }
    }

    private static class get_materialization_invalidation_info_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_materialization_invalidation_info_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_materialization_invalidation_info_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_materialization_invalidation_info_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = new Materialization();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new InvalidOperationException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new UnknownDBException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class update_creation_metadata_args implements org.apache.thrift.TBase<update_creation_metadata_args, update_creation_metadata_args._Fields>, java.io.Serializable, Cloneable, Comparable<update_creation_metadata_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("update_creation_metadata_args");

    private static final org.apache.thrift.protocol.TField CAT_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("catName", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField DBNAME_FIELD_DESC = new org.apache.thrift.protocol.TField("dbname", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)3);
    private static final org.apache.thrift.protocol.TField CREATION_METADATA_FIELD_DESC = new org.apache.thrift.protocol.TField("creation_metadata", org.apache.thrift.protocol.TType.STRUCT, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new update_creation_metadata_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new update_creation_metadata_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String catName; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String dbname; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private @org.apache.thrift.annotation.Nullable CreationMetadata creation_metadata; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      CAT_NAME((short)1, "catName"),
      DBNAME((short)2, "dbname"),
      TBL_NAME((short)3, "tbl_name"),
      CREATION_METADATA((short)4, "creation_metadata");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // CAT_NAME
            return CAT_NAME;
          case 2: // DBNAME
            return DBNAME;
          case 3: // TBL_NAME
            return TBL_NAME;
          case 4: // CREATION_METADATA
            return CREATION_METADATA;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.CAT_NAME, new org.apache.thrift.meta_data.FieldMetaData("catName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.DBNAME, new org.apache.thrift.meta_data.FieldMetaData("dbname", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.CREATION_METADATA, new org.apache.thrift.meta_data.FieldMetaData("creation_metadata", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CreationMetadata.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(update_creation_metadata_args.class, metaDataMap);
    }

    public update_creation_metadata_args() {
    }

    public update_creation_metadata_args(
      java.lang.String catName,
      java.lang.String dbname,
      java.lang.String tbl_name,
      CreationMetadata creation_metadata)
    {
      this();
      this.catName = catName;
      this.dbname = dbname;
      this.tbl_name = tbl_name;
      this.creation_metadata = creation_metadata;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public update_creation_metadata_args(update_creation_metadata_args other) {
      if (other.isSetCatName()) {
        this.catName = other.catName;
      }
      if (other.isSetDbname()) {
        this.dbname = other.dbname;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      if (other.isSetCreation_metadata()) {
        this.creation_metadata = new CreationMetadata(other.creation_metadata);
      }
    }

    public update_creation_metadata_args deepCopy() {
      return new update_creation_metadata_args(this);
    }

    @Override
    public void clear() {
      this.catName = null;
      this.dbname = null;
      this.tbl_name = null;
      this.creation_metadata = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getCatName() {
      return this.catName;
    }

    public void setCatName(@org.apache.thrift.annotation.Nullable java.lang.String catName) {
      this.catName = catName;
    }

    public void unsetCatName() {
      this.catName = null;
    }

    /** Returns true if field catName is set (has been assigned a value) and false otherwise */
    public boolean isSetCatName() {
      return this.catName != null;
    }

    public void setCatNameIsSet(boolean value) {
      if (!value) {
        this.catName = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDbname() {
      return this.dbname;
    }

    public void setDbname(@org.apache.thrift.annotation.Nullable java.lang.String dbname) {
      this.dbname = dbname;
    }

    public void unsetDbname() {
      this.dbname = null;
    }

    /** Returns true if field dbname is set (has been assigned a value) and false otherwise */
    public boolean isSetDbname() {
      return this.dbname != null;
    }

    public void setDbnameIsSet(boolean value) {
      if (!value) {
        this.dbname = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public CreationMetadata getCreation_metadata() {
      return this.creation_metadata;
    }

    public void setCreation_metadata(@org.apache.thrift.annotation.Nullable CreationMetadata creation_metadata) {
      this.creation_metadata = creation_metadata;
    }

    public void unsetCreation_metadata() {
      this.creation_metadata = null;
    }

    /** Returns true if field creation_metadata is set (has been assigned a value) and false otherwise */
    public boolean isSetCreation_metadata() {
      return this.creation_metadata != null;
    }

    public void setCreation_metadataIsSet(boolean value) {
      if (!value) {
        this.creation_metadata = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case CAT_NAME:
        if (value == null) {
          unsetCatName();
        } else {
          setCatName((java.lang.String)value);
        }
        break;

      case DBNAME:
        if (value == null) {
          unsetDbname();
        } else {
          setDbname((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case CREATION_METADATA:
        if (value == null) {
          unsetCreation_metadata();
        } else {
          setCreation_metadata((CreationMetadata)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case CAT_NAME:
        return getCatName();

      case DBNAME:
        return getDbname();

      case TBL_NAME:
        return getTbl_name();

      case CREATION_METADATA:
        return getCreation_metadata();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case CAT_NAME:
        return isSetCatName();
      case DBNAME:
        return isSetDbname();
      case TBL_NAME:
        return isSetTbl_name();
      case CREATION_METADATA:
        return isSetCreation_metadata();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof update_creation_metadata_args)
        return this.equals((update_creation_metadata_args)that);
      return false;
    }

    public boolean equals(update_creation_metadata_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_catName = true && this.isSetCatName();
      boolean that_present_catName = true && that.isSetCatName();
      if (this_present_catName || that_present_catName) {
        if (!(this_present_catName && that_present_catName))
          return false;
        if (!this.catName.equals(that.catName))
          return false;
      }

      boolean this_present_dbname = true && this.isSetDbname();
      boolean that_present_dbname = true && that.isSetDbname();
      if (this_present_dbname || that_present_dbname) {
        if (!(this_present_dbname && that_present_dbname))
          return false;
        if (!this.dbname.equals(that.dbname))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_creation_metadata = true && this.isSetCreation_metadata();
      boolean that_present_creation_metadata = true && that.isSetCreation_metadata();
      if (this_present_creation_metadata || that_present_creation_metadata) {
        if (!(this_present_creation_metadata && that_present_creation_metadata))
          return false;
        if (!this.creation_metadata.equals(that.creation_metadata))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetCatName()) ? 131071 : 524287);
      if (isSetCatName())
        hashCode = hashCode * 8191 + catName.hashCode();

      hashCode = hashCode * 8191 + ((isSetDbname()) ? 131071 : 524287);
      if (isSetDbname())
        hashCode = hashCode * 8191 + dbname.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetCreation_metadata()) ? 131071 : 524287);
      if (isSetCreation_metadata())
        hashCode = hashCode * 8191 + creation_metadata.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(update_creation_metadata_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetCatName(), other.isSetCatName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetCatName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.catName, other.catName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetDbname(), other.isSetDbname());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDbname()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dbname, other.dbname);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetCreation_metadata(), other.isSetCreation_metadata());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetCreation_metadata()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.creation_metadata, other.creation_metadata);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("update_creation_metadata_args(");
      boolean first = true;

      sb.append("catName:");
      if (this.catName == null) {
        sb.append("null");
      } else {
        sb.append(this.catName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("dbname:");
      if (this.dbname == null) {
        sb.append("null");
      } else {
        sb.append(this.dbname);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("creation_metadata:");
      if (this.creation_metadata == null) {
        sb.append("null");
      } else {
        sb.append(this.creation_metadata);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (creation_metadata != null) {
        creation_metadata.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class update_creation_metadata_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public update_creation_metadata_argsStandardScheme getScheme() {
        return new update_creation_metadata_argsStandardScheme();
      }
    }

    private static class update_creation_metadata_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<update_creation_metadata_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, update_creation_metadata_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // CAT_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.catName = iprot.readString();
                struct.setCatNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // DBNAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.dbname = iprot.readString();
                struct.setDbnameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // CREATION_METADATA
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.creation_metadata = new CreationMetadata();
                struct.creation_metadata.read(iprot);
                struct.setCreation_metadataIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, update_creation_metadata_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.catName != null) {
          oprot.writeFieldBegin(CAT_NAME_FIELD_DESC);
          oprot.writeString(struct.catName);
          oprot.writeFieldEnd();
        }
        if (struct.dbname != null) {
          oprot.writeFieldBegin(DBNAME_FIELD_DESC);
          oprot.writeString(struct.dbname);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        if (struct.creation_metadata != null) {
          oprot.writeFieldBegin(CREATION_METADATA_FIELD_DESC);
          struct.creation_metadata.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class update_creation_metadata_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public update_creation_metadata_argsTupleScheme getScheme() {
        return new update_creation_metadata_argsTupleScheme();
      }
    }

    private static class update_creation_metadata_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<update_creation_metadata_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, update_creation_metadata_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetCatName()) {
          optionals.set(0);
        }
        if (struct.isSetDbname()) {
          optionals.set(1);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(2);
        }
        if (struct.isSetCreation_metadata()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetCatName()) {
          oprot.writeString(struct.catName);
        }
        if (struct.isSetDbname()) {
          oprot.writeString(struct.dbname);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetCreation_metadata()) {
          struct.creation_metadata.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, update_creation_metadata_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.catName = iprot.readString();
          struct.setCatNameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.dbname = iprot.readString();
          struct.setDbnameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(3)) {
          struct.creation_metadata = new CreationMetadata();
          struct.creation_metadata.read(iprot);
          struct.setCreation_metadataIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class update_creation_metadata_result implements org.apache.thrift.TBase<update_creation_metadata_result, update_creation_metadata_result._Fields>, java.io.Serializable, Cloneable, Comparable<update_creation_metadata_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("update_creation_metadata_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new update_creation_metadata_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new update_creation_metadata_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable InvalidOperationException o2; // required
    private @org.apache.thrift.annotation.Nullable UnknownDBException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidOperationException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UnknownDBException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(update_creation_metadata_result.class, metaDataMap);
    }

    public update_creation_metadata_result() {
    }

    public update_creation_metadata_result(
      MetaException o1,
      InvalidOperationException o2,
      UnknownDBException o3)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public update_creation_metadata_result(update_creation_metadata_result other) {
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new InvalidOperationException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new UnknownDBException(other.o3);
      }
    }

    public update_creation_metadata_result deepCopy() {
      return new update_creation_metadata_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidOperationException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable InvalidOperationException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public UnknownDBException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable UnknownDBException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((InvalidOperationException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((UnknownDBException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof update_creation_metadata_result)
        return this.equals((update_creation_metadata_result)that);
      return false;
    }

    public boolean equals(update_creation_metadata_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(update_creation_metadata_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("update_creation_metadata_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class update_creation_metadata_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public update_creation_metadata_resultStandardScheme getScheme() {
        return new update_creation_metadata_resultStandardScheme();
      }
    }

    private static class update_creation_metadata_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<update_creation_metadata_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, update_creation_metadata_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new InvalidOperationException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new UnknownDBException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, update_creation_metadata_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class update_creation_metadata_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public update_creation_metadata_resultTupleScheme getScheme() {
        return new update_creation_metadata_resultTupleScheme();
      }
    }

    private static class update_creation_metadata_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<update_creation_metadata_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, update_creation_metadata_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        if (struct.isSetO3()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, update_creation_metadata_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new InvalidOperationException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o3 = new UnknownDBException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_names_by_filter_args implements org.apache.thrift.TBase<get_table_names_by_filter_args, get_table_names_by_filter_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_table_names_by_filter_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_table_names_by_filter_args");

    private static final org.apache.thrift.protocol.TField DBNAME_FIELD_DESC = new org.apache.thrift.protocol.TField("dbname", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField FILTER_FIELD_DESC = new org.apache.thrift.protocol.TField("filter", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField MAX_TABLES_FIELD_DESC = new org.apache.thrift.protocol.TField("max_tables", org.apache.thrift.protocol.TType.I16, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_table_names_by_filter_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_table_names_by_filter_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String dbname; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String filter; // required
    private short max_tables; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DBNAME((short)1, "dbname"),
      FILTER((short)2, "filter"),
      MAX_TABLES((short)3, "max_tables");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DBNAME
            return DBNAME;
          case 2: // FILTER
            return FILTER;
          case 3: // MAX_TABLES
            return MAX_TABLES;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __MAX_TABLES_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DBNAME, new org.apache.thrift.meta_data.FieldMetaData("dbname", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.FILTER, new org.apache.thrift.meta_data.FieldMetaData("filter", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.MAX_TABLES, new org.apache.thrift.meta_data.FieldMetaData("max_tables", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I16)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_table_names_by_filter_args.class, metaDataMap);
    }

    public get_table_names_by_filter_args() {
      this.max_tables = (short)-1;

    }

    public get_table_names_by_filter_args(
      java.lang.String dbname,
      java.lang.String filter,
      short max_tables)
    {
      this();
      this.dbname = dbname;
      this.filter = filter;
      this.max_tables = max_tables;
      setMax_tablesIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_table_names_by_filter_args(get_table_names_by_filter_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetDbname()) {
        this.dbname = other.dbname;
      }
      if (other.isSetFilter()) {
        this.filter = other.filter;
      }
      this.max_tables = other.max_tables;
    }

    public get_table_names_by_filter_args deepCopy() {
      return new get_table_names_by_filter_args(this);
    }

    @Override
    public void clear() {
      this.dbname = null;
      this.filter = null;
      this.max_tables = (short)-1;

    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDbname() {
      return this.dbname;
    }

    public void setDbname(@org.apache.thrift.annotation.Nullable java.lang.String dbname) {
      this.dbname = dbname;
    }

    public void unsetDbname() {
      this.dbname = null;
    }

    /** Returns true if field dbname is set (has been assigned a value) and false otherwise */
    public boolean isSetDbname() {
      return this.dbname != null;
    }

    public void setDbnameIsSet(boolean value) {
      if (!value) {
        this.dbname = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getFilter() {
      return this.filter;
    }

    public void setFilter(@org.apache.thrift.annotation.Nullable java.lang.String filter) {
      this.filter = filter;
    }

    public void unsetFilter() {
      this.filter = null;
    }

    /** Returns true if field filter is set (has been assigned a value) and false otherwise */
    public boolean isSetFilter() {
      return this.filter != null;
    }

    public void setFilterIsSet(boolean value) {
      if (!value) {
        this.filter = null;
      }
    }

    public short getMax_tables() {
      return this.max_tables;
    }

    public void setMax_tables(short max_tables) {
      this.max_tables = max_tables;
      setMax_tablesIsSet(true);
    }

    public void unsetMax_tables() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __MAX_TABLES_ISSET_ID);
    }

    /** Returns true if field max_tables is set (has been assigned a value) and false otherwise */
    public boolean isSetMax_tables() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __MAX_TABLES_ISSET_ID);
    }

    public void setMax_tablesIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __MAX_TABLES_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DBNAME:
        if (value == null) {
          unsetDbname();
        } else {
          setDbname((java.lang.String)value);
        }
        break;

      case FILTER:
        if (value == null) {
          unsetFilter();
        } else {
          setFilter((java.lang.String)value);
        }
        break;

      case MAX_TABLES:
        if (value == null) {
          unsetMax_tables();
        } else {
          setMax_tables((java.lang.Short)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DBNAME:
        return getDbname();

      case FILTER:
        return getFilter();

      case MAX_TABLES:
        return getMax_tables();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DBNAME:
        return isSetDbname();
      case FILTER:
        return isSetFilter();
      case MAX_TABLES:
        return isSetMax_tables();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_table_names_by_filter_args)
        return this.equals((get_table_names_by_filter_args)that);
      return false;
    }

    public boolean equals(get_table_names_by_filter_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_dbname = true && this.isSetDbname();
      boolean that_present_dbname = true && that.isSetDbname();
      if (this_present_dbname || that_present_dbname) {
        if (!(this_present_dbname && that_present_dbname))
          return false;
        if (!this.dbname.equals(that.dbname))
          return false;
      }

      boolean this_present_filter = true && this.isSetFilter();
      boolean that_present_filter = true && that.isSetFilter();
      if (this_present_filter || that_present_filter) {
        if (!(this_present_filter && that_present_filter))
          return false;
        if (!this.filter.equals(that.filter))
          return false;
      }

      boolean this_present_max_tables = true;
      boolean that_present_max_tables = true;
      if (this_present_max_tables || that_present_max_tables) {
        if (!(this_present_max_tables && that_present_max_tables))
          return false;
        if (this.max_tables != that.max_tables)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDbname()) ? 131071 : 524287);
      if (isSetDbname())
        hashCode = hashCode * 8191 + dbname.hashCode();

      hashCode = hashCode * 8191 + ((isSetFilter()) ? 131071 : 524287);
      if (isSetFilter())
        hashCode = hashCode * 8191 + filter.hashCode();

      hashCode = hashCode * 8191 + max_tables;

      return hashCode;
    }

    @Override
    public int compareTo(get_table_names_by_filter_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDbname(), other.isSetDbname());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDbname()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dbname, other.dbname);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetFilter(), other.isSetFilter());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetFilter()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.filter, other.filter);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetMax_tables(), other.isSetMax_tables());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetMax_tables()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.max_tables, other.max_tables);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_table_names_by_filter_args(");
      boolean first = true;

      sb.append("dbname:");
      if (this.dbname == null) {
        sb.append("null");
      } else {
        sb.append(this.dbname);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("filter:");
      if (this.filter == null) {
        sb.append("null");
      } else {
        sb.append(this.filter);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("max_tables:");
      sb.append(this.max_tables);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_table_names_by_filter_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_table_names_by_filter_argsStandardScheme getScheme() {
        return new get_table_names_by_filter_argsStandardScheme();
      }
    }

    private static class get_table_names_by_filter_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_table_names_by_filter_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_table_names_by_filter_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DBNAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.dbname = iprot.readString();
                struct.setDbnameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // FILTER
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.filter = iprot.readString();
                struct.setFilterIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // MAX_TABLES
              if (schemeField.type == org.apache.thrift.protocol.TType.I16) {
                struct.max_tables = iprot.readI16();
                struct.setMax_tablesIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_table_names_by_filter_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.dbname != null) {
          oprot.writeFieldBegin(DBNAME_FIELD_DESC);
          oprot.writeString(struct.dbname);
          oprot.writeFieldEnd();
        }
        if (struct.filter != null) {
          oprot.writeFieldBegin(FILTER_FIELD_DESC);
          oprot.writeString(struct.filter);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(MAX_TABLES_FIELD_DESC);
        oprot.writeI16(struct.max_tables);
        oprot.writeFieldEnd();
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_table_names_by_filter_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_table_names_by_filter_argsTupleScheme getScheme() {
        return new get_table_names_by_filter_argsTupleScheme();
      }
    }

    private static class get_table_names_by_filter_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_table_names_by_filter_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_table_names_by_filter_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDbname()) {
          optionals.set(0);
        }
        if (struct.isSetFilter()) {
          optionals.set(1);
        }
        if (struct.isSetMax_tables()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetDbname()) {
          oprot.writeString(struct.dbname);
        }
        if (struct.isSetFilter()) {
          oprot.writeString(struct.filter);
        }
        if (struct.isSetMax_tables()) {
          oprot.writeI16(struct.max_tables);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_table_names_by_filter_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.dbname = iprot.readString();
          struct.setDbnameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.filter = iprot.readString();
          struct.setFilterIsSet(true);
        }
        if (incoming.get(2)) {
          struct.max_tables = iprot.readI16();
          struct.setMax_tablesIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_names_by_filter_result implements org.apache.thrift.TBase<get_table_names_by_filter_result, get_table_names_by_filter_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_table_names_by_filter_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_table_names_by_filter_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_table_names_by_filter_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_table_names_by_filter_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable InvalidOperationException o2; // required
    private @org.apache.thrift.annotation.Nullable UnknownDBException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidOperationException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UnknownDBException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_table_names_by_filter_result.class, metaDataMap);
    }

    public get_table_names_by_filter_result() {
    }

    public get_table_names_by_filter_result(
      java.util.List<java.lang.String> success,
      MetaException o1,
      InvalidOperationException o2,
      UnknownDBException o3)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_table_names_by_filter_result(get_table_names_by_filter_result other) {
      if (other.isSetSuccess()) {
        java.util.List<java.lang.String> __this__success = new java.util.ArrayList<java.lang.String>(other.success);
        this.success = __this__success;
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new InvalidOperationException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new UnknownDBException(other.o3);
      }
    }

    public get_table_names_by_filter_result deepCopy() {
      return new get_table_names_by_filter_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(java.lang.String elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<java.lang.String>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidOperationException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable InvalidOperationException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public UnknownDBException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable UnknownDBException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<java.lang.String>)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((InvalidOperationException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((UnknownDBException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_table_names_by_filter_result)
        return this.equals((get_table_names_by_filter_result)that);
      return false;
    }

    public boolean equals(get_table_names_by_filter_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_table_names_by_filter_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_table_names_by_filter_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_table_names_by_filter_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_table_names_by_filter_resultStandardScheme getScheme() {
        return new get_table_names_by_filter_resultStandardScheme();
      }
    }

    private static class get_table_names_by_filter_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_table_names_by_filter_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_table_names_by_filter_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1098 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<java.lang.String>(_list1098.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem1099;
                  for (int _i1100 = 0; _i1100 < _list1098.size; ++_i1100)
                  {
                    _elem1099 = iprot.readString();
                    struct.success.add(_elem1099);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new InvalidOperationException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new UnknownDBException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_table_names_by_filter_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.success.size()));
            for (java.lang.String _iter1101 : struct.success)
            {
              oprot.writeString(_iter1101);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_table_names_by_filter_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_table_names_by_filter_resultTupleScheme getScheme() {
        return new get_table_names_by_filter_resultTupleScheme();
      }
    }

    private static class get_table_names_by_filter_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_table_names_by_filter_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_table_names_by_filter_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (java.lang.String _iter1102 : struct.success)
            {
              oprot.writeString(_iter1102);
            }
          }
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_table_names_by_filter_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list1103 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.success = new java.util.ArrayList<java.lang.String>(_list1103.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem1104;
            for (int _i1105 = 0; _i1105 < _list1103.size; ++_i1105)
            {
              _elem1104 = iprot.readString();
              struct.success.add(_elem1104);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new InvalidOperationException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new UnknownDBException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_table_args implements org.apache.thrift.TBase<alter_table_args, alter_table_args._Fields>, java.io.Serializable, Cloneable, Comparable<alter_table_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("alter_table_args");

    private static final org.apache.thrift.protocol.TField DBNAME_FIELD_DESC = new org.apache.thrift.protocol.TField("dbname", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField NEW_TBL_FIELD_DESC = new org.apache.thrift.protocol.TField("new_tbl", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new alter_table_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new alter_table_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String dbname; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private @org.apache.thrift.annotation.Nullable Table new_tbl; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DBNAME((short)1, "dbname"),
      TBL_NAME((short)2, "tbl_name"),
      NEW_TBL((short)3, "new_tbl");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DBNAME
            return DBNAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // NEW_TBL
            return NEW_TBL;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DBNAME, new org.apache.thrift.meta_data.FieldMetaData("dbname", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.NEW_TBL, new org.apache.thrift.meta_data.FieldMetaData("new_tbl", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Table.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(alter_table_args.class, metaDataMap);
    }

    public alter_table_args() {
    }

    public alter_table_args(
      java.lang.String dbname,
      java.lang.String tbl_name,
      Table new_tbl)
    {
      this();
      this.dbname = dbname;
      this.tbl_name = tbl_name;
      this.new_tbl = new_tbl;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public alter_table_args(alter_table_args other) {
      if (other.isSetDbname()) {
        this.dbname = other.dbname;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      if (other.isSetNew_tbl()) {
        this.new_tbl = new Table(other.new_tbl);
      }
    }

    public alter_table_args deepCopy() {
      return new alter_table_args(this);
    }

    @Override
    public void clear() {
      this.dbname = null;
      this.tbl_name = null;
      this.new_tbl = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDbname() {
      return this.dbname;
    }

    public void setDbname(@org.apache.thrift.annotation.Nullable java.lang.String dbname) {
      this.dbname = dbname;
    }

    public void unsetDbname() {
      this.dbname = null;
    }

    /** Returns true if field dbname is set (has been assigned a value) and false otherwise */
    public boolean isSetDbname() {
      return this.dbname != null;
    }

    public void setDbnameIsSet(boolean value) {
      if (!value) {
        this.dbname = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public Table getNew_tbl() {
      return this.new_tbl;
    }

    public void setNew_tbl(@org.apache.thrift.annotation.Nullable Table new_tbl) {
      this.new_tbl = new_tbl;
    }

    public void unsetNew_tbl() {
      this.new_tbl = null;
    }

    /** Returns true if field new_tbl is set (has been assigned a value) and false otherwise */
    public boolean isSetNew_tbl() {
      return this.new_tbl != null;
    }

    public void setNew_tblIsSet(boolean value) {
      if (!value) {
        this.new_tbl = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DBNAME:
        if (value == null) {
          unsetDbname();
        } else {
          setDbname((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case NEW_TBL:
        if (value == null) {
          unsetNew_tbl();
        } else {
          setNew_tbl((Table)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DBNAME:
        return getDbname();

      case TBL_NAME:
        return getTbl_name();

      case NEW_TBL:
        return getNew_tbl();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DBNAME:
        return isSetDbname();
      case TBL_NAME:
        return isSetTbl_name();
      case NEW_TBL:
        return isSetNew_tbl();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof alter_table_args)
        return this.equals((alter_table_args)that);
      return false;
    }

    public boolean equals(alter_table_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_dbname = true && this.isSetDbname();
      boolean that_present_dbname = true && that.isSetDbname();
      if (this_present_dbname || that_present_dbname) {
        if (!(this_present_dbname && that_present_dbname))
          return false;
        if (!this.dbname.equals(that.dbname))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_new_tbl = true && this.isSetNew_tbl();
      boolean that_present_new_tbl = true && that.isSetNew_tbl();
      if (this_present_new_tbl || that_present_new_tbl) {
        if (!(this_present_new_tbl && that_present_new_tbl))
          return false;
        if (!this.new_tbl.equals(that.new_tbl))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDbname()) ? 131071 : 524287);
      if (isSetDbname())
        hashCode = hashCode * 8191 + dbname.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetNew_tbl()) ? 131071 : 524287);
      if (isSetNew_tbl())
        hashCode = hashCode * 8191 + new_tbl.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(alter_table_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDbname(), other.isSetDbname());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDbname()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dbname, other.dbname);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetNew_tbl(), other.isSetNew_tbl());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetNew_tbl()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.new_tbl, other.new_tbl);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("alter_table_args(");
      boolean first = true;

      sb.append("dbname:");
      if (this.dbname == null) {
        sb.append("null");
      } else {
        sb.append(this.dbname);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("new_tbl:");
      if (this.new_tbl == null) {
        sb.append("null");
      } else {
        sb.append(this.new_tbl);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (new_tbl != null) {
        new_tbl.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class alter_table_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_table_argsStandardScheme getScheme() {
        return new alter_table_argsStandardScheme();
      }
    }

    private static class alter_table_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<alter_table_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, alter_table_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DBNAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.dbname = iprot.readString();
                struct.setDbnameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // NEW_TBL
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.new_tbl = new Table();
                struct.new_tbl.read(iprot);
                struct.setNew_tblIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, alter_table_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.dbname != null) {
          oprot.writeFieldBegin(DBNAME_FIELD_DESC);
          oprot.writeString(struct.dbname);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        if (struct.new_tbl != null) {
          oprot.writeFieldBegin(NEW_TBL_FIELD_DESC);
          struct.new_tbl.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class alter_table_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_table_argsTupleScheme getScheme() {
        return new alter_table_argsTupleScheme();
      }
    }

    private static class alter_table_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<alter_table_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, alter_table_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDbname()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetNew_tbl()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetDbname()) {
          oprot.writeString(struct.dbname);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetNew_tbl()) {
          struct.new_tbl.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, alter_table_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.dbname = iprot.readString();
          struct.setDbnameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.new_tbl = new Table();
          struct.new_tbl.read(iprot);
          struct.setNew_tblIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_table_result implements org.apache.thrift.TBase<alter_table_result, alter_table_result._Fields>, java.io.Serializable, Cloneable, Comparable<alter_table_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("alter_table_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new alter_table_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new alter_table_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable InvalidOperationException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidOperationException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(alter_table_result.class, metaDataMap);
    }

    public alter_table_result() {
    }

    public alter_table_result(
      InvalidOperationException o1,
      MetaException o2)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public alter_table_result(alter_table_result other) {
      if (other.isSetO1()) {
        this.o1 = new InvalidOperationException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public alter_table_result deepCopy() {
      return new alter_table_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidOperationException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable InvalidOperationException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((InvalidOperationException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof alter_table_result)
        return this.equals((alter_table_result)that);
      return false;
    }

    public boolean equals(alter_table_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(alter_table_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("alter_table_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class alter_table_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_table_resultStandardScheme getScheme() {
        return new alter_table_resultStandardScheme();
      }
    }

    private static class alter_table_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<alter_table_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, alter_table_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new InvalidOperationException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, alter_table_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class alter_table_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_table_resultTupleScheme getScheme() {
        return new alter_table_resultTupleScheme();
      }
    }

    private static class alter_table_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<alter_table_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, alter_table_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, alter_table_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.o1 = new InvalidOperationException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_table_with_environment_context_args implements org.apache.thrift.TBase<alter_table_with_environment_context_args, alter_table_with_environment_context_args._Fields>, java.io.Serializable, Cloneable, Comparable<alter_table_with_environment_context_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("alter_table_with_environment_context_args");

    private static final org.apache.thrift.protocol.TField DBNAME_FIELD_DESC = new org.apache.thrift.protocol.TField("dbname", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField NEW_TBL_FIELD_DESC = new org.apache.thrift.protocol.TField("new_tbl", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField ENVIRONMENT_CONTEXT_FIELD_DESC = new org.apache.thrift.protocol.TField("environment_context", org.apache.thrift.protocol.TType.STRUCT, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new alter_table_with_environment_context_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new alter_table_with_environment_context_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String dbname; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private @org.apache.thrift.annotation.Nullable Table new_tbl; // required
    private @org.apache.thrift.annotation.Nullable EnvironmentContext environment_context; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DBNAME((short)1, "dbname"),
      TBL_NAME((short)2, "tbl_name"),
      NEW_TBL((short)3, "new_tbl"),
      ENVIRONMENT_CONTEXT((short)4, "environment_context");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DBNAME
            return DBNAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // NEW_TBL
            return NEW_TBL;
          case 4: // ENVIRONMENT_CONTEXT
            return ENVIRONMENT_CONTEXT;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DBNAME, new org.apache.thrift.meta_data.FieldMetaData("dbname", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.NEW_TBL, new org.apache.thrift.meta_data.FieldMetaData("new_tbl", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Table.class)));
      tmpMap.put(_Fields.ENVIRONMENT_CONTEXT, new org.apache.thrift.meta_data.FieldMetaData("environment_context", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, EnvironmentContext.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(alter_table_with_environment_context_args.class, metaDataMap);
    }

    public alter_table_with_environment_context_args() {
    }

    public alter_table_with_environment_context_args(
      java.lang.String dbname,
      java.lang.String tbl_name,
      Table new_tbl,
      EnvironmentContext environment_context)
    {
      this();
      this.dbname = dbname;
      this.tbl_name = tbl_name;
      this.new_tbl = new_tbl;
      this.environment_context = environment_context;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public alter_table_with_environment_context_args(alter_table_with_environment_context_args other) {
      if (other.isSetDbname()) {
        this.dbname = other.dbname;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      if (other.isSetNew_tbl()) {
        this.new_tbl = new Table(other.new_tbl);
      }
      if (other.isSetEnvironment_context()) {
        this.environment_context = new EnvironmentContext(other.environment_context);
      }
    }

    public alter_table_with_environment_context_args deepCopy() {
      return new alter_table_with_environment_context_args(this);
    }

    @Override
    public void clear() {
      this.dbname = null;
      this.tbl_name = null;
      this.new_tbl = null;
      this.environment_context = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDbname() {
      return this.dbname;
    }

    public void setDbname(@org.apache.thrift.annotation.Nullable java.lang.String dbname) {
      this.dbname = dbname;
    }

    public void unsetDbname() {
      this.dbname = null;
    }

    /** Returns true if field dbname is set (has been assigned a value) and false otherwise */
    public boolean isSetDbname() {
      return this.dbname != null;
    }

    public void setDbnameIsSet(boolean value) {
      if (!value) {
        this.dbname = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public Table getNew_tbl() {
      return this.new_tbl;
    }

    public void setNew_tbl(@org.apache.thrift.annotation.Nullable Table new_tbl) {
      this.new_tbl = new_tbl;
    }

    public void unsetNew_tbl() {
      this.new_tbl = null;
    }

    /** Returns true if field new_tbl is set (has been assigned a value) and false otherwise */
    public boolean isSetNew_tbl() {
      return this.new_tbl != null;
    }

    public void setNew_tblIsSet(boolean value) {
      if (!value) {
        this.new_tbl = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public EnvironmentContext getEnvironment_context() {
      return this.environment_context;
    }

    public void setEnvironment_context(@org.apache.thrift.annotation.Nullable EnvironmentContext environment_context) {
      this.environment_context = environment_context;
    }

    public void unsetEnvironment_context() {
      this.environment_context = null;
    }

    /** Returns true if field environment_context is set (has been assigned a value) and false otherwise */
    public boolean isSetEnvironment_context() {
      return this.environment_context != null;
    }

    public void setEnvironment_contextIsSet(boolean value) {
      if (!value) {
        this.environment_context = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DBNAME:
        if (value == null) {
          unsetDbname();
        } else {
          setDbname((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case NEW_TBL:
        if (value == null) {
          unsetNew_tbl();
        } else {
          setNew_tbl((Table)value);
        }
        break;

      case ENVIRONMENT_CONTEXT:
        if (value == null) {
          unsetEnvironment_context();
        } else {
          setEnvironment_context((EnvironmentContext)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DBNAME:
        return getDbname();

      case TBL_NAME:
        return getTbl_name();

      case NEW_TBL:
        return getNew_tbl();

      case ENVIRONMENT_CONTEXT:
        return getEnvironment_context();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DBNAME:
        return isSetDbname();
      case TBL_NAME:
        return isSetTbl_name();
      case NEW_TBL:
        return isSetNew_tbl();
      case ENVIRONMENT_CONTEXT:
        return isSetEnvironment_context();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof alter_table_with_environment_context_args)
        return this.equals((alter_table_with_environment_context_args)that);
      return false;
    }

    public boolean equals(alter_table_with_environment_context_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_dbname = true && this.isSetDbname();
      boolean that_present_dbname = true && that.isSetDbname();
      if (this_present_dbname || that_present_dbname) {
        if (!(this_present_dbname && that_present_dbname))
          return false;
        if (!this.dbname.equals(that.dbname))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_new_tbl = true && this.isSetNew_tbl();
      boolean that_present_new_tbl = true && that.isSetNew_tbl();
      if (this_present_new_tbl || that_present_new_tbl) {
        if (!(this_present_new_tbl && that_present_new_tbl))
          return false;
        if (!this.new_tbl.equals(that.new_tbl))
          return false;
      }

      boolean this_present_environment_context = true && this.isSetEnvironment_context();
      boolean that_present_environment_context = true && that.isSetEnvironment_context();
      if (this_present_environment_context || that_present_environment_context) {
        if (!(this_present_environment_context && that_present_environment_context))
          return false;
        if (!this.environment_context.equals(that.environment_context))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDbname()) ? 131071 : 524287);
      if (isSetDbname())
        hashCode = hashCode * 8191 + dbname.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetNew_tbl()) ? 131071 : 524287);
      if (isSetNew_tbl())
        hashCode = hashCode * 8191 + new_tbl.hashCode();

      hashCode = hashCode * 8191 + ((isSetEnvironment_context()) ? 131071 : 524287);
      if (isSetEnvironment_context())
        hashCode = hashCode * 8191 + environment_context.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(alter_table_with_environment_context_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDbname(), other.isSetDbname());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDbname()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dbname, other.dbname);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetNew_tbl(), other.isSetNew_tbl());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetNew_tbl()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.new_tbl, other.new_tbl);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetEnvironment_context(), other.isSetEnvironment_context());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEnvironment_context()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.environment_context, other.environment_context);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("alter_table_with_environment_context_args(");
      boolean first = true;

      sb.append("dbname:");
      if (this.dbname == null) {
        sb.append("null");
      } else {
        sb.append(this.dbname);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("new_tbl:");
      if (this.new_tbl == null) {
        sb.append("null");
      } else {
        sb.append(this.new_tbl);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("environment_context:");
      if (this.environment_context == null) {
        sb.append("null");
      } else {
        sb.append(this.environment_context);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (new_tbl != null) {
        new_tbl.validate();
      }
      if (environment_context != null) {
        environment_context.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class alter_table_with_environment_context_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_table_with_environment_context_argsStandardScheme getScheme() {
        return new alter_table_with_environment_context_argsStandardScheme();
      }
    }

    private static class alter_table_with_environment_context_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<alter_table_with_environment_context_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, alter_table_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DBNAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.dbname = iprot.readString();
                struct.setDbnameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // NEW_TBL
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.new_tbl = new Table();
                struct.new_tbl.read(iprot);
                struct.setNew_tblIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // ENVIRONMENT_CONTEXT
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.environment_context = new EnvironmentContext();
                struct.environment_context.read(iprot);
                struct.setEnvironment_contextIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, alter_table_with_environment_context_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.dbname != null) {
          oprot.writeFieldBegin(DBNAME_FIELD_DESC);
          oprot.writeString(struct.dbname);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        if (struct.new_tbl != null) {
          oprot.writeFieldBegin(NEW_TBL_FIELD_DESC);
          struct.new_tbl.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.environment_context != null) {
          oprot.writeFieldBegin(ENVIRONMENT_CONTEXT_FIELD_DESC);
          struct.environment_context.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class alter_table_with_environment_context_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_table_with_environment_context_argsTupleScheme getScheme() {
        return new alter_table_with_environment_context_argsTupleScheme();
      }
    }

    private static class alter_table_with_environment_context_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<alter_table_with_environment_context_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, alter_table_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDbname()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetNew_tbl()) {
          optionals.set(2);
        }
        if (struct.isSetEnvironment_context()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetDbname()) {
          oprot.writeString(struct.dbname);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetNew_tbl()) {
          struct.new_tbl.write(oprot);
        }
        if (struct.isSetEnvironment_context()) {
          struct.environment_context.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, alter_table_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.dbname = iprot.readString();
          struct.setDbnameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.new_tbl = new Table();
          struct.new_tbl.read(iprot);
          struct.setNew_tblIsSet(true);
        }
        if (incoming.get(3)) {
          struct.environment_context = new EnvironmentContext();
          struct.environment_context.read(iprot);
          struct.setEnvironment_contextIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_table_with_environment_context_result implements org.apache.thrift.TBase<alter_table_with_environment_context_result, alter_table_with_environment_context_result._Fields>, java.io.Serializable, Cloneable, Comparable<alter_table_with_environment_context_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("alter_table_with_environment_context_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new alter_table_with_environment_context_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new alter_table_with_environment_context_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable InvalidOperationException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidOperationException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(alter_table_with_environment_context_result.class, metaDataMap);
    }

    public alter_table_with_environment_context_result() {
    }

    public alter_table_with_environment_context_result(
      InvalidOperationException o1,
      MetaException o2)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public alter_table_with_environment_context_result(alter_table_with_environment_context_result other) {
      if (other.isSetO1()) {
        this.o1 = new InvalidOperationException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public alter_table_with_environment_context_result deepCopy() {
      return new alter_table_with_environment_context_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidOperationException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable InvalidOperationException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((InvalidOperationException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof alter_table_with_environment_context_result)
        return this.equals((alter_table_with_environment_context_result)that);
      return false;
    }

    public boolean equals(alter_table_with_environment_context_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(alter_table_with_environment_context_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("alter_table_with_environment_context_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class alter_table_with_environment_context_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_table_with_environment_context_resultStandardScheme getScheme() {
        return new alter_table_with_environment_context_resultStandardScheme();
      }
    }

    private static class alter_table_with_environment_context_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<alter_table_with_environment_context_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, alter_table_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new InvalidOperationException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, alter_table_with_environment_context_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class alter_table_with_environment_context_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_table_with_environment_context_resultTupleScheme getScheme() {
        return new alter_table_with_environment_context_resultTupleScheme();
      }
    }

    private static class alter_table_with_environment_context_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<alter_table_with_environment_context_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, alter_table_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, alter_table_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.o1 = new InvalidOperationException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_table_with_cascade_args implements org.apache.thrift.TBase<alter_table_with_cascade_args, alter_table_with_cascade_args._Fields>, java.io.Serializable, Cloneable, Comparable<alter_table_with_cascade_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("alter_table_with_cascade_args");

    private static final org.apache.thrift.protocol.TField DBNAME_FIELD_DESC = new org.apache.thrift.protocol.TField("dbname", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField NEW_TBL_FIELD_DESC = new org.apache.thrift.protocol.TField("new_tbl", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField CASCADE_FIELD_DESC = new org.apache.thrift.protocol.TField("cascade", org.apache.thrift.protocol.TType.BOOL, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new alter_table_with_cascade_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new alter_table_with_cascade_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String dbname; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private @org.apache.thrift.annotation.Nullable Table new_tbl; // required
    private boolean cascade; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DBNAME((short)1, "dbname"),
      TBL_NAME((short)2, "tbl_name"),
      NEW_TBL((short)3, "new_tbl"),
      CASCADE((short)4, "cascade");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DBNAME
            return DBNAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // NEW_TBL
            return NEW_TBL;
          case 4: // CASCADE
            return CASCADE;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __CASCADE_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DBNAME, new org.apache.thrift.meta_data.FieldMetaData("dbname", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.NEW_TBL, new org.apache.thrift.meta_data.FieldMetaData("new_tbl", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Table.class)));
      tmpMap.put(_Fields.CASCADE, new org.apache.thrift.meta_data.FieldMetaData("cascade", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(alter_table_with_cascade_args.class, metaDataMap);
    }

    public alter_table_with_cascade_args() {
    }

    public alter_table_with_cascade_args(
      java.lang.String dbname,
      java.lang.String tbl_name,
      Table new_tbl,
      boolean cascade)
    {
      this();
      this.dbname = dbname;
      this.tbl_name = tbl_name;
      this.new_tbl = new_tbl;
      this.cascade = cascade;
      setCascadeIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public alter_table_with_cascade_args(alter_table_with_cascade_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetDbname()) {
        this.dbname = other.dbname;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      if (other.isSetNew_tbl()) {
        this.new_tbl = new Table(other.new_tbl);
      }
      this.cascade = other.cascade;
    }

    public alter_table_with_cascade_args deepCopy() {
      return new alter_table_with_cascade_args(this);
    }

    @Override
    public void clear() {
      this.dbname = null;
      this.tbl_name = null;
      this.new_tbl = null;
      setCascadeIsSet(false);
      this.cascade = false;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDbname() {
      return this.dbname;
    }

    public void setDbname(@org.apache.thrift.annotation.Nullable java.lang.String dbname) {
      this.dbname = dbname;
    }

    public void unsetDbname() {
      this.dbname = null;
    }

    /** Returns true if field dbname is set (has been assigned a value) and false otherwise */
    public boolean isSetDbname() {
      return this.dbname != null;
    }

    public void setDbnameIsSet(boolean value) {
      if (!value) {
        this.dbname = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public Table getNew_tbl() {
      return this.new_tbl;
    }

    public void setNew_tbl(@org.apache.thrift.annotation.Nullable Table new_tbl) {
      this.new_tbl = new_tbl;
    }

    public void unsetNew_tbl() {
      this.new_tbl = null;
    }

    /** Returns true if field new_tbl is set (has been assigned a value) and false otherwise */
    public boolean isSetNew_tbl() {
      return this.new_tbl != null;
    }

    public void setNew_tblIsSet(boolean value) {
      if (!value) {
        this.new_tbl = null;
      }
    }

    public boolean isCascade() {
      return this.cascade;
    }

    public void setCascade(boolean cascade) {
      this.cascade = cascade;
      setCascadeIsSet(true);
    }

    public void unsetCascade() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __CASCADE_ISSET_ID);
    }

    /** Returns true if field cascade is set (has been assigned a value) and false otherwise */
    public boolean isSetCascade() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __CASCADE_ISSET_ID);
    }

    public void setCascadeIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __CASCADE_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DBNAME:
        if (value == null) {
          unsetDbname();
        } else {
          setDbname((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case NEW_TBL:
        if (value == null) {
          unsetNew_tbl();
        } else {
          setNew_tbl((Table)value);
        }
        break;

      case CASCADE:
        if (value == null) {
          unsetCascade();
        } else {
          setCascade((java.lang.Boolean)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DBNAME:
        return getDbname();

      case TBL_NAME:
        return getTbl_name();

      case NEW_TBL:
        return getNew_tbl();

      case CASCADE:
        return isCascade();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DBNAME:
        return isSetDbname();
      case TBL_NAME:
        return isSetTbl_name();
      case NEW_TBL:
        return isSetNew_tbl();
      case CASCADE:
        return isSetCascade();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof alter_table_with_cascade_args)
        return this.equals((alter_table_with_cascade_args)that);
      return false;
    }

    public boolean equals(alter_table_with_cascade_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_dbname = true && this.isSetDbname();
      boolean that_present_dbname = true && that.isSetDbname();
      if (this_present_dbname || that_present_dbname) {
        if (!(this_present_dbname && that_present_dbname))
          return false;
        if (!this.dbname.equals(that.dbname))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_new_tbl = true && this.isSetNew_tbl();
      boolean that_present_new_tbl = true && that.isSetNew_tbl();
      if (this_present_new_tbl || that_present_new_tbl) {
        if (!(this_present_new_tbl && that_present_new_tbl))
          return false;
        if (!this.new_tbl.equals(that.new_tbl))
          return false;
      }

      boolean this_present_cascade = true;
      boolean that_present_cascade = true;
      if (this_present_cascade || that_present_cascade) {
        if (!(this_present_cascade && that_present_cascade))
          return false;
        if (this.cascade != that.cascade)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDbname()) ? 131071 : 524287);
      if (isSetDbname())
        hashCode = hashCode * 8191 + dbname.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetNew_tbl()) ? 131071 : 524287);
      if (isSetNew_tbl())
        hashCode = hashCode * 8191 + new_tbl.hashCode();

      hashCode = hashCode * 8191 + ((cascade) ? 131071 : 524287);

      return hashCode;
    }

    @Override
    public int compareTo(alter_table_with_cascade_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDbname(), other.isSetDbname());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDbname()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dbname, other.dbname);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetNew_tbl(), other.isSetNew_tbl());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetNew_tbl()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.new_tbl, other.new_tbl);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetCascade(), other.isSetCascade());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetCascade()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.cascade, other.cascade);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("alter_table_with_cascade_args(");
      boolean first = true;

      sb.append("dbname:");
      if (this.dbname == null) {
        sb.append("null");
      } else {
        sb.append(this.dbname);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("new_tbl:");
      if (this.new_tbl == null) {
        sb.append("null");
      } else {
        sb.append(this.new_tbl);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("cascade:");
      sb.append(this.cascade);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (new_tbl != null) {
        new_tbl.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class alter_table_with_cascade_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_table_with_cascade_argsStandardScheme getScheme() {
        return new alter_table_with_cascade_argsStandardScheme();
      }
    }

    private static class alter_table_with_cascade_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<alter_table_with_cascade_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, alter_table_with_cascade_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DBNAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.dbname = iprot.readString();
                struct.setDbnameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // NEW_TBL
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.new_tbl = new Table();
                struct.new_tbl.read(iprot);
                struct.setNew_tblIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // CASCADE
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.cascade = iprot.readBool();
                struct.setCascadeIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, alter_table_with_cascade_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.dbname != null) {
          oprot.writeFieldBegin(DBNAME_FIELD_DESC);
          oprot.writeString(struct.dbname);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        if (struct.new_tbl != null) {
          oprot.writeFieldBegin(NEW_TBL_FIELD_DESC);
          struct.new_tbl.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(CASCADE_FIELD_DESC);
        oprot.writeBool(struct.cascade);
        oprot.writeFieldEnd();
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class alter_table_with_cascade_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_table_with_cascade_argsTupleScheme getScheme() {
        return new alter_table_with_cascade_argsTupleScheme();
      }
    }

    private static class alter_table_with_cascade_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<alter_table_with_cascade_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, alter_table_with_cascade_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDbname()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetNew_tbl()) {
          optionals.set(2);
        }
        if (struct.isSetCascade()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetDbname()) {
          oprot.writeString(struct.dbname);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetNew_tbl()) {
          struct.new_tbl.write(oprot);
        }
        if (struct.isSetCascade()) {
          oprot.writeBool(struct.cascade);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, alter_table_with_cascade_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.dbname = iprot.readString();
          struct.setDbnameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.new_tbl = new Table();
          struct.new_tbl.read(iprot);
          struct.setNew_tblIsSet(true);
        }
        if (incoming.get(3)) {
          struct.cascade = iprot.readBool();
          struct.setCascadeIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_table_with_cascade_result implements org.apache.thrift.TBase<alter_table_with_cascade_result, alter_table_with_cascade_result._Fields>, java.io.Serializable, Cloneable, Comparable<alter_table_with_cascade_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("alter_table_with_cascade_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new alter_table_with_cascade_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new alter_table_with_cascade_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable InvalidOperationException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidOperationException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(alter_table_with_cascade_result.class, metaDataMap);
    }

    public alter_table_with_cascade_result() {
    }

    public alter_table_with_cascade_result(
      InvalidOperationException o1,
      MetaException o2)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public alter_table_with_cascade_result(alter_table_with_cascade_result other) {
      if (other.isSetO1()) {
        this.o1 = new InvalidOperationException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public alter_table_with_cascade_result deepCopy() {
      return new alter_table_with_cascade_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidOperationException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable InvalidOperationException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((InvalidOperationException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof alter_table_with_cascade_result)
        return this.equals((alter_table_with_cascade_result)that);
      return false;
    }

    public boolean equals(alter_table_with_cascade_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(alter_table_with_cascade_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("alter_table_with_cascade_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class alter_table_with_cascade_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_table_with_cascade_resultStandardScheme getScheme() {
        return new alter_table_with_cascade_resultStandardScheme();
      }
    }

    private static class alter_table_with_cascade_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<alter_table_with_cascade_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, alter_table_with_cascade_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new InvalidOperationException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, alter_table_with_cascade_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class alter_table_with_cascade_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_table_with_cascade_resultTupleScheme getScheme() {
        return new alter_table_with_cascade_resultTupleScheme();
      }
    }

    private static class alter_table_with_cascade_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<alter_table_with_cascade_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, alter_table_with_cascade_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, alter_table_with_cascade_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.o1 = new InvalidOperationException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_partition_args implements org.apache.thrift.TBase<add_partition_args, add_partition_args._Fields>, java.io.Serializable, Cloneable, Comparable<add_partition_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("add_partition_args");

    private static final org.apache.thrift.protocol.TField NEW_PART_FIELD_DESC = new org.apache.thrift.protocol.TField("new_part", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new add_partition_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new add_partition_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable Partition new_part; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      NEW_PART((short)1, "new_part");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // NEW_PART
            return NEW_PART;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.NEW_PART, new org.apache.thrift.meta_data.FieldMetaData("new_part", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Partition.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(add_partition_args.class, metaDataMap);
    }

    public add_partition_args() {
    }

    public add_partition_args(
      Partition new_part)
    {
      this();
      this.new_part = new_part;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public add_partition_args(add_partition_args other) {
      if (other.isSetNew_part()) {
        this.new_part = new Partition(other.new_part);
      }
    }

    public add_partition_args deepCopy() {
      return new add_partition_args(this);
    }

    @Override
    public void clear() {
      this.new_part = null;
    }

    @org.apache.thrift.annotation.Nullable
    public Partition getNew_part() {
      return this.new_part;
    }

    public void setNew_part(@org.apache.thrift.annotation.Nullable Partition new_part) {
      this.new_part = new_part;
    }

    public void unsetNew_part() {
      this.new_part = null;
    }

    /** Returns true if field new_part is set (has been assigned a value) and false otherwise */
    public boolean isSetNew_part() {
      return this.new_part != null;
    }

    public void setNew_partIsSet(boolean value) {
      if (!value) {
        this.new_part = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case NEW_PART:
        if (value == null) {
          unsetNew_part();
        } else {
          setNew_part((Partition)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case NEW_PART:
        return getNew_part();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case NEW_PART:
        return isSetNew_part();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof add_partition_args)
        return this.equals((add_partition_args)that);
      return false;
    }

    public boolean equals(add_partition_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_new_part = true && this.isSetNew_part();
      boolean that_present_new_part = true && that.isSetNew_part();
      if (this_present_new_part || that_present_new_part) {
        if (!(this_present_new_part && that_present_new_part))
          return false;
        if (!this.new_part.equals(that.new_part))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetNew_part()) ? 131071 : 524287);
      if (isSetNew_part())
        hashCode = hashCode * 8191 + new_part.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(add_partition_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetNew_part(), other.isSetNew_part());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetNew_part()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.new_part, other.new_part);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("add_partition_args(");
      boolean first = true;

      sb.append("new_part:");
      if (this.new_part == null) {
        sb.append("null");
      } else {
        sb.append(this.new_part);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (new_part != null) {
        new_part.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class add_partition_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_partition_argsStandardScheme getScheme() {
        return new add_partition_argsStandardScheme();
      }
    }

    private static class add_partition_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<add_partition_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, add_partition_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // NEW_PART
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.new_part = new Partition();
                struct.new_part.read(iprot);
                struct.setNew_partIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, add_partition_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.new_part != null) {
          oprot.writeFieldBegin(NEW_PART_FIELD_DESC);
          struct.new_part.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class add_partition_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_partition_argsTupleScheme getScheme() {
        return new add_partition_argsTupleScheme();
      }
    }

    private static class add_partition_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<add_partition_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, add_partition_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetNew_part()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetNew_part()) {
          struct.new_part.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, add_partition_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.new_part = new Partition();
          struct.new_part.read(iprot);
          struct.setNew_partIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_partition_result implements org.apache.thrift.TBase<add_partition_result, add_partition_result._Fields>, java.io.Serializable, Cloneable, Comparable<add_partition_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("add_partition_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new add_partition_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new add_partition_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable Partition success; // required
    private @org.apache.thrift.annotation.Nullable InvalidObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable AlreadyExistsException o2; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Partition.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AlreadyExistsException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(add_partition_result.class, metaDataMap);
    }

    public add_partition_result() {
    }

    public add_partition_result(
      Partition success,
      InvalidObjectException o1,
      AlreadyExistsException o2,
      MetaException o3)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public add_partition_result(add_partition_result other) {
      if (other.isSetSuccess()) {
        this.success = new Partition(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new InvalidObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new AlreadyExistsException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
    }

    public add_partition_result deepCopy() {
      return new add_partition_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public Partition getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable Partition success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable InvalidObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public AlreadyExistsException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable AlreadyExistsException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Partition)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((InvalidObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((AlreadyExistsException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof add_partition_result)
        return this.equals((add_partition_result)that);
      return false;
    }

    public boolean equals(add_partition_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(add_partition_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("add_partition_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class add_partition_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_partition_resultStandardScheme getScheme() {
        return new add_partition_resultStandardScheme();
      }
    }

    private static class add_partition_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<add_partition_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, add_partition_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new Partition();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new InvalidObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new AlreadyExistsException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, add_partition_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class add_partition_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_partition_resultTupleScheme getScheme() {
        return new add_partition_resultTupleScheme();
      }
    }

    private static class add_partition_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<add_partition_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, add_partition_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, add_partition_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = new Partition();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new InvalidObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new AlreadyExistsException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_partition_with_environment_context_args implements org.apache.thrift.TBase<add_partition_with_environment_context_args, add_partition_with_environment_context_args._Fields>, java.io.Serializable, Cloneable, Comparable<add_partition_with_environment_context_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("add_partition_with_environment_context_args");

    private static final org.apache.thrift.protocol.TField NEW_PART_FIELD_DESC = new org.apache.thrift.protocol.TField("new_part", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField ENVIRONMENT_CONTEXT_FIELD_DESC = new org.apache.thrift.protocol.TField("environment_context", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new add_partition_with_environment_context_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new add_partition_with_environment_context_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable Partition new_part; // required
    private @org.apache.thrift.annotation.Nullable EnvironmentContext environment_context; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      NEW_PART((short)1, "new_part"),
      ENVIRONMENT_CONTEXT((short)2, "environment_context");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // NEW_PART
            return NEW_PART;
          case 2: // ENVIRONMENT_CONTEXT
            return ENVIRONMENT_CONTEXT;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.NEW_PART, new org.apache.thrift.meta_data.FieldMetaData("new_part", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Partition.class)));
      tmpMap.put(_Fields.ENVIRONMENT_CONTEXT, new org.apache.thrift.meta_data.FieldMetaData("environment_context", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, EnvironmentContext.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(add_partition_with_environment_context_args.class, metaDataMap);
    }

    public add_partition_with_environment_context_args() {
    }

    public add_partition_with_environment_context_args(
      Partition new_part,
      EnvironmentContext environment_context)
    {
      this();
      this.new_part = new_part;
      this.environment_context = environment_context;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public add_partition_with_environment_context_args(add_partition_with_environment_context_args other) {
      if (other.isSetNew_part()) {
        this.new_part = new Partition(other.new_part);
      }
      if (other.isSetEnvironment_context()) {
        this.environment_context = new EnvironmentContext(other.environment_context);
      }
    }

    public add_partition_with_environment_context_args deepCopy() {
      return new add_partition_with_environment_context_args(this);
    }

    @Override
    public void clear() {
      this.new_part = null;
      this.environment_context = null;
    }

    @org.apache.thrift.annotation.Nullable
    public Partition getNew_part() {
      return this.new_part;
    }

    public void setNew_part(@org.apache.thrift.annotation.Nullable Partition new_part) {
      this.new_part = new_part;
    }

    public void unsetNew_part() {
      this.new_part = null;
    }

    /** Returns true if field new_part is set (has been assigned a value) and false otherwise */
    public boolean isSetNew_part() {
      return this.new_part != null;
    }

    public void setNew_partIsSet(boolean value) {
      if (!value) {
        this.new_part = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public EnvironmentContext getEnvironment_context() {
      return this.environment_context;
    }

    public void setEnvironment_context(@org.apache.thrift.annotation.Nullable EnvironmentContext environment_context) {
      this.environment_context = environment_context;
    }

    public void unsetEnvironment_context() {
      this.environment_context = null;
    }

    /** Returns true if field environment_context is set (has been assigned a value) and false otherwise */
    public boolean isSetEnvironment_context() {
      return this.environment_context != null;
    }

    public void setEnvironment_contextIsSet(boolean value) {
      if (!value) {
        this.environment_context = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case NEW_PART:
        if (value == null) {
          unsetNew_part();
        } else {
          setNew_part((Partition)value);
        }
        break;

      case ENVIRONMENT_CONTEXT:
        if (value == null) {
          unsetEnvironment_context();
        } else {
          setEnvironment_context((EnvironmentContext)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case NEW_PART:
        return getNew_part();

      case ENVIRONMENT_CONTEXT:
        return getEnvironment_context();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case NEW_PART:
        return isSetNew_part();
      case ENVIRONMENT_CONTEXT:
        return isSetEnvironment_context();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof add_partition_with_environment_context_args)
        return this.equals((add_partition_with_environment_context_args)that);
      return false;
    }

    public boolean equals(add_partition_with_environment_context_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_new_part = true && this.isSetNew_part();
      boolean that_present_new_part = true && that.isSetNew_part();
      if (this_present_new_part || that_present_new_part) {
        if (!(this_present_new_part && that_present_new_part))
          return false;
        if (!this.new_part.equals(that.new_part))
          return false;
      }

      boolean this_present_environment_context = true && this.isSetEnvironment_context();
      boolean that_present_environment_context = true && that.isSetEnvironment_context();
      if (this_present_environment_context || that_present_environment_context) {
        if (!(this_present_environment_context && that_present_environment_context))
          return false;
        if (!this.environment_context.equals(that.environment_context))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetNew_part()) ? 131071 : 524287);
      if (isSetNew_part())
        hashCode = hashCode * 8191 + new_part.hashCode();

      hashCode = hashCode * 8191 + ((isSetEnvironment_context()) ? 131071 : 524287);
      if (isSetEnvironment_context())
        hashCode = hashCode * 8191 + environment_context.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(add_partition_with_environment_context_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetNew_part(), other.isSetNew_part());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetNew_part()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.new_part, other.new_part);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetEnvironment_context(), other.isSetEnvironment_context());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEnvironment_context()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.environment_context, other.environment_context);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("add_partition_with_environment_context_args(");
      boolean first = true;

      sb.append("new_part:");
      if (this.new_part == null) {
        sb.append("null");
      } else {
        sb.append(this.new_part);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("environment_context:");
      if (this.environment_context == null) {
        sb.append("null");
      } else {
        sb.append(this.environment_context);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (new_part != null) {
        new_part.validate();
      }
      if (environment_context != null) {
        environment_context.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class add_partition_with_environment_context_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_partition_with_environment_context_argsStandardScheme getScheme() {
        return new add_partition_with_environment_context_argsStandardScheme();
      }
    }

    private static class add_partition_with_environment_context_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<add_partition_with_environment_context_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, add_partition_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // NEW_PART
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.new_part = new Partition();
                struct.new_part.read(iprot);
                struct.setNew_partIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // ENVIRONMENT_CONTEXT
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.environment_context = new EnvironmentContext();
                struct.environment_context.read(iprot);
                struct.setEnvironment_contextIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, add_partition_with_environment_context_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.new_part != null) {
          oprot.writeFieldBegin(NEW_PART_FIELD_DESC);
          struct.new_part.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.environment_context != null) {
          oprot.writeFieldBegin(ENVIRONMENT_CONTEXT_FIELD_DESC);
          struct.environment_context.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class add_partition_with_environment_context_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_partition_with_environment_context_argsTupleScheme getScheme() {
        return new add_partition_with_environment_context_argsTupleScheme();
      }
    }

    private static class add_partition_with_environment_context_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<add_partition_with_environment_context_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, add_partition_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetNew_part()) {
          optionals.set(0);
        }
        if (struct.isSetEnvironment_context()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetNew_part()) {
          struct.new_part.write(oprot);
        }
        if (struct.isSetEnvironment_context()) {
          struct.environment_context.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, add_partition_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.new_part = new Partition();
          struct.new_part.read(iprot);
          struct.setNew_partIsSet(true);
        }
        if (incoming.get(1)) {
          struct.environment_context = new EnvironmentContext();
          struct.environment_context.read(iprot);
          struct.setEnvironment_contextIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_partition_with_environment_context_result implements org.apache.thrift.TBase<add_partition_with_environment_context_result, add_partition_with_environment_context_result._Fields>, java.io.Serializable, Cloneable, Comparable<add_partition_with_environment_context_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("add_partition_with_environment_context_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new add_partition_with_environment_context_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new add_partition_with_environment_context_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable Partition success; // required
    private @org.apache.thrift.annotation.Nullable InvalidObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable AlreadyExistsException o2; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Partition.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AlreadyExistsException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(add_partition_with_environment_context_result.class, metaDataMap);
    }

    public add_partition_with_environment_context_result() {
    }

    public add_partition_with_environment_context_result(
      Partition success,
      InvalidObjectException o1,
      AlreadyExistsException o2,
      MetaException o3)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public add_partition_with_environment_context_result(add_partition_with_environment_context_result other) {
      if (other.isSetSuccess()) {
        this.success = new Partition(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new InvalidObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new AlreadyExistsException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
    }

    public add_partition_with_environment_context_result deepCopy() {
      return new add_partition_with_environment_context_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public Partition getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable Partition success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable InvalidObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public AlreadyExistsException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable AlreadyExistsException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Partition)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((InvalidObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((AlreadyExistsException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof add_partition_with_environment_context_result)
        return this.equals((add_partition_with_environment_context_result)that);
      return false;
    }

    public boolean equals(add_partition_with_environment_context_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(add_partition_with_environment_context_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("add_partition_with_environment_context_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class add_partition_with_environment_context_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_partition_with_environment_context_resultStandardScheme getScheme() {
        return new add_partition_with_environment_context_resultStandardScheme();
      }
    }

    private static class add_partition_with_environment_context_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<add_partition_with_environment_context_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, add_partition_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new Partition();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new InvalidObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new AlreadyExistsException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, add_partition_with_environment_context_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class add_partition_with_environment_context_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_partition_with_environment_context_resultTupleScheme getScheme() {
        return new add_partition_with_environment_context_resultTupleScheme();
      }
    }

    private static class add_partition_with_environment_context_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<add_partition_with_environment_context_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, add_partition_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, add_partition_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = new Partition();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new InvalidObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new AlreadyExistsException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_partitions_args implements org.apache.thrift.TBase<add_partitions_args, add_partitions_args._Fields>, java.io.Serializable, Cloneable, Comparable<add_partitions_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("add_partitions_args");

    private static final org.apache.thrift.protocol.TField NEW_PARTS_FIELD_DESC = new org.apache.thrift.protocol.TField("new_parts", org.apache.thrift.protocol.TType.LIST, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new add_partitions_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new add_partitions_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<Partition> new_parts; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      NEW_PARTS((short)1, "new_parts");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // NEW_PARTS
            return NEW_PARTS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.NEW_PARTS, new org.apache.thrift.meta_data.FieldMetaData("new_parts", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Partition.class))));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(add_partitions_args.class, metaDataMap);
    }

    public add_partitions_args() {
    }

    public add_partitions_args(
      java.util.List<Partition> new_parts)
    {
      this();
      this.new_parts = new_parts;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public add_partitions_args(add_partitions_args other) {
      if (other.isSetNew_parts()) {
        java.util.List<Partition> __this__new_parts = new java.util.ArrayList<Partition>(other.new_parts.size());
        for (Partition other_element : other.new_parts) {
          __this__new_parts.add(new Partition(other_element));
        }
        this.new_parts = __this__new_parts;
      }
    }

    public add_partitions_args deepCopy() {
      return new add_partitions_args(this);
    }

    @Override
    public void clear() {
      this.new_parts = null;
    }

    public int getNew_partsSize() {
      return (this.new_parts == null) ? 0 : this.new_parts.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<Partition> getNew_partsIterator() {
      return (this.new_parts == null) ? null : this.new_parts.iterator();
    }

    public void addToNew_parts(Partition elem) {
      if (this.new_parts == null) {
        this.new_parts = new java.util.ArrayList<Partition>();
      }
      this.new_parts.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<Partition> getNew_parts() {
      return this.new_parts;
    }

    public void setNew_parts(@org.apache.thrift.annotation.Nullable java.util.List<Partition> new_parts) {
      this.new_parts = new_parts;
    }

    public void unsetNew_parts() {
      this.new_parts = null;
    }

    /** Returns true if field new_parts is set (has been assigned a value) and false otherwise */
    public boolean isSetNew_parts() {
      return this.new_parts != null;
    }

    public void setNew_partsIsSet(boolean value) {
      if (!value) {
        this.new_parts = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case NEW_PARTS:
        if (value == null) {
          unsetNew_parts();
        } else {
          setNew_parts((java.util.List<Partition>)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case NEW_PARTS:
        return getNew_parts();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case NEW_PARTS:
        return isSetNew_parts();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof add_partitions_args)
        return this.equals((add_partitions_args)that);
      return false;
    }

    public boolean equals(add_partitions_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_new_parts = true && this.isSetNew_parts();
      boolean that_present_new_parts = true && that.isSetNew_parts();
      if (this_present_new_parts || that_present_new_parts) {
        if (!(this_present_new_parts && that_present_new_parts))
          return false;
        if (!this.new_parts.equals(that.new_parts))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetNew_parts()) ? 131071 : 524287);
      if (isSetNew_parts())
        hashCode = hashCode * 8191 + new_parts.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(add_partitions_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetNew_parts(), other.isSetNew_parts());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetNew_parts()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.new_parts, other.new_parts);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("add_partitions_args(");
      boolean first = true;

      sb.append("new_parts:");
      if (this.new_parts == null) {
        sb.append("null");
      } else {
        sb.append(this.new_parts);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class add_partitions_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_partitions_argsStandardScheme getScheme() {
        return new add_partitions_argsStandardScheme();
      }
    }

    private static class add_partitions_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<add_partitions_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, add_partitions_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // NEW_PARTS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1106 = iprot.readListBegin();
                  struct.new_parts = new java.util.ArrayList<Partition>(_list1106.size);
                  @org.apache.thrift.annotation.Nullable Partition _elem1107;
                  for (int _i1108 = 0; _i1108 < _list1106.size; ++_i1108)
                  {
                    _elem1107 = new Partition();
                    _elem1107.read(iprot);
                    struct.new_parts.add(_elem1107);
                  }
                  iprot.readListEnd();
                }
                struct.setNew_partsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, add_partitions_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.new_parts != null) {
          oprot.writeFieldBegin(NEW_PARTS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.new_parts.size()));
            for (Partition _iter1109 : struct.new_parts)
            {
              _iter1109.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class add_partitions_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_partitions_argsTupleScheme getScheme() {
        return new add_partitions_argsTupleScheme();
      }
    }

    private static class add_partitions_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<add_partitions_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, add_partitions_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetNew_parts()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetNew_parts()) {
          {
            oprot.writeI32(struct.new_parts.size());
            for (Partition _iter1110 : struct.new_parts)
            {
              _iter1110.write(oprot);
            }
          }
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, add_partitions_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list1111 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
            struct.new_parts = new java.util.ArrayList<Partition>(_list1111.size);
            @org.apache.thrift.annotation.Nullable Partition _elem1112;
            for (int _i1113 = 0; _i1113 < _list1111.size; ++_i1113)
            {
              _elem1112 = new Partition();
              _elem1112.read(iprot);
              struct.new_parts.add(_elem1112);
            }
          }
          struct.setNew_partsIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_partitions_result implements org.apache.thrift.TBase<add_partitions_result, add_partitions_result._Fields>, java.io.Serializable, Cloneable, Comparable<add_partitions_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("add_partitions_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.I32, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new add_partitions_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new add_partitions_resultTupleSchemeFactory();

    private int success; // required
    private @org.apache.thrift.annotation.Nullable InvalidObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable AlreadyExistsException o2; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AlreadyExistsException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(add_partitions_result.class, metaDataMap);
    }

    public add_partitions_result() {
    }

    public add_partitions_result(
      int success,
      InvalidObjectException o1,
      AlreadyExistsException o2,
      MetaException o3)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public add_partitions_result(add_partitions_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
      if (other.isSetO1()) {
        this.o1 = new InvalidObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new AlreadyExistsException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
    }

    public add_partitions_result deepCopy() {
      return new add_partitions_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = 0;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    public int getSuccess() {
      return this.success;
    }

    public void setSuccess(int success) {
      this.success = success;
      setSuccessIsSet(true);
    }

    public void unsetSuccess() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable InvalidObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public AlreadyExistsException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable AlreadyExistsException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.lang.Integer)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((InvalidObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((AlreadyExistsException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof add_partitions_result)
        return this.equals((add_partitions_result)that);
      return false;
    }

    public boolean equals(add_partitions_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + success;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(add_partitions_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("add_partitions_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class add_partitions_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_partitions_resultStandardScheme getScheme() {
        return new add_partitions_resultStandardScheme();
      }
    }

    private static class add_partitions_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<add_partitions_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, add_partitions_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
                struct.success = iprot.readI32();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new InvalidObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new AlreadyExistsException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, add_partitions_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeI32(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class add_partitions_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_partitions_resultTupleScheme getScheme() {
        return new add_partitions_resultTupleScheme();
      }
    }

    private static class add_partitions_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<add_partitions_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, add_partitions_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          oprot.writeI32(struct.success);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, add_partitions_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = iprot.readI32();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new InvalidObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new AlreadyExistsException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_partitions_pspec_args implements org.apache.thrift.TBase<add_partitions_pspec_args, add_partitions_pspec_args._Fields>, java.io.Serializable, Cloneable, Comparable<add_partitions_pspec_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("add_partitions_pspec_args");

    private static final org.apache.thrift.protocol.TField NEW_PARTS_FIELD_DESC = new org.apache.thrift.protocol.TField("new_parts", org.apache.thrift.protocol.TType.LIST, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new add_partitions_pspec_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new add_partitions_pspec_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<PartitionSpec> new_parts; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      NEW_PARTS((short)1, "new_parts");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // NEW_PARTS
            return NEW_PARTS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.NEW_PARTS, new org.apache.thrift.meta_data.FieldMetaData("new_parts", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, PartitionSpec.class))));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(add_partitions_pspec_args.class, metaDataMap);
    }

    public add_partitions_pspec_args() {
    }

    public add_partitions_pspec_args(
      java.util.List<PartitionSpec> new_parts)
    {
      this();
      this.new_parts = new_parts;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public add_partitions_pspec_args(add_partitions_pspec_args other) {
      if (other.isSetNew_parts()) {
        java.util.List<PartitionSpec> __this__new_parts = new java.util.ArrayList<PartitionSpec>(other.new_parts.size());
        for (PartitionSpec other_element : other.new_parts) {
          __this__new_parts.add(new PartitionSpec(other_element));
        }
        this.new_parts = __this__new_parts;
      }
    }

    public add_partitions_pspec_args deepCopy() {
      return new add_partitions_pspec_args(this);
    }

    @Override
    public void clear() {
      this.new_parts = null;
    }

    public int getNew_partsSize() {
      return (this.new_parts == null) ? 0 : this.new_parts.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<PartitionSpec> getNew_partsIterator() {
      return (this.new_parts == null) ? null : this.new_parts.iterator();
    }

    public void addToNew_parts(PartitionSpec elem) {
      if (this.new_parts == null) {
        this.new_parts = new java.util.ArrayList<PartitionSpec>();
      }
      this.new_parts.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<PartitionSpec> getNew_parts() {
      return this.new_parts;
    }

    public void setNew_parts(@org.apache.thrift.annotation.Nullable java.util.List<PartitionSpec> new_parts) {
      this.new_parts = new_parts;
    }

    public void unsetNew_parts() {
      this.new_parts = null;
    }

    /** Returns true if field new_parts is set (has been assigned a value) and false otherwise */
    public boolean isSetNew_parts() {
      return this.new_parts != null;
    }

    public void setNew_partsIsSet(boolean value) {
      if (!value) {
        this.new_parts = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case NEW_PARTS:
        if (value == null) {
          unsetNew_parts();
        } else {
          setNew_parts((java.util.List<PartitionSpec>)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case NEW_PARTS:
        return getNew_parts();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case NEW_PARTS:
        return isSetNew_parts();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof add_partitions_pspec_args)
        return this.equals((add_partitions_pspec_args)that);
      return false;
    }

    public boolean equals(add_partitions_pspec_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_new_parts = true && this.isSetNew_parts();
      boolean that_present_new_parts = true && that.isSetNew_parts();
      if (this_present_new_parts || that_present_new_parts) {
        if (!(this_present_new_parts && that_present_new_parts))
          return false;
        if (!this.new_parts.equals(that.new_parts))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetNew_parts()) ? 131071 : 524287);
      if (isSetNew_parts())
        hashCode = hashCode * 8191 + new_parts.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(add_partitions_pspec_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetNew_parts(), other.isSetNew_parts());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetNew_parts()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.new_parts, other.new_parts);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("add_partitions_pspec_args(");
      boolean first = true;

      sb.append("new_parts:");
      if (this.new_parts == null) {
        sb.append("null");
      } else {
        sb.append(this.new_parts);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class add_partitions_pspec_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_partitions_pspec_argsStandardScheme getScheme() {
        return new add_partitions_pspec_argsStandardScheme();
      }
    }

    private static class add_partitions_pspec_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<add_partitions_pspec_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, add_partitions_pspec_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // NEW_PARTS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1114 = iprot.readListBegin();
                  struct.new_parts = new java.util.ArrayList<PartitionSpec>(_list1114.size);
                  @org.apache.thrift.annotation.Nullable PartitionSpec _elem1115;
                  for (int _i1116 = 0; _i1116 < _list1114.size; ++_i1116)
                  {
                    _elem1115 = new PartitionSpec();
                    _elem1115.read(iprot);
                    struct.new_parts.add(_elem1115);
                  }
                  iprot.readListEnd();
                }
                struct.setNew_partsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, add_partitions_pspec_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.new_parts != null) {
          oprot.writeFieldBegin(NEW_PARTS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.new_parts.size()));
            for (PartitionSpec _iter1117 : struct.new_parts)
            {
              _iter1117.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class add_partitions_pspec_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_partitions_pspec_argsTupleScheme getScheme() {
        return new add_partitions_pspec_argsTupleScheme();
      }
    }

    private static class add_partitions_pspec_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<add_partitions_pspec_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, add_partitions_pspec_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetNew_parts()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetNew_parts()) {
          {
            oprot.writeI32(struct.new_parts.size());
            for (PartitionSpec _iter1118 : struct.new_parts)
            {
              _iter1118.write(oprot);
            }
          }
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, add_partitions_pspec_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list1119 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
            struct.new_parts = new java.util.ArrayList<PartitionSpec>(_list1119.size);
            @org.apache.thrift.annotation.Nullable PartitionSpec _elem1120;
            for (int _i1121 = 0; _i1121 < _list1119.size; ++_i1121)
            {
              _elem1120 = new PartitionSpec();
              _elem1120.read(iprot);
              struct.new_parts.add(_elem1120);
            }
          }
          struct.setNew_partsIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_partitions_pspec_result implements org.apache.thrift.TBase<add_partitions_pspec_result, add_partitions_pspec_result._Fields>, java.io.Serializable, Cloneable, Comparable<add_partitions_pspec_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("add_partitions_pspec_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.I32, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new add_partitions_pspec_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new add_partitions_pspec_resultTupleSchemeFactory();

    private int success; // required
    private @org.apache.thrift.annotation.Nullable InvalidObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable AlreadyExistsException o2; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AlreadyExistsException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(add_partitions_pspec_result.class, metaDataMap);
    }

    public add_partitions_pspec_result() {
    }

    public add_partitions_pspec_result(
      int success,
      InvalidObjectException o1,
      AlreadyExistsException o2,
      MetaException o3)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public add_partitions_pspec_result(add_partitions_pspec_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
      if (other.isSetO1()) {
        this.o1 = new InvalidObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new AlreadyExistsException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
    }

    public add_partitions_pspec_result deepCopy() {
      return new add_partitions_pspec_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = 0;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    public int getSuccess() {
      return this.success;
    }

    public void setSuccess(int success) {
      this.success = success;
      setSuccessIsSet(true);
    }

    public void unsetSuccess() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable InvalidObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public AlreadyExistsException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable AlreadyExistsException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.lang.Integer)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((InvalidObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((AlreadyExistsException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof add_partitions_pspec_result)
        return this.equals((add_partitions_pspec_result)that);
      return false;
    }

    public boolean equals(add_partitions_pspec_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + success;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(add_partitions_pspec_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("add_partitions_pspec_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class add_partitions_pspec_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_partitions_pspec_resultStandardScheme getScheme() {
        return new add_partitions_pspec_resultStandardScheme();
      }
    }

    private static class add_partitions_pspec_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<add_partitions_pspec_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, add_partitions_pspec_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
                struct.success = iprot.readI32();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new InvalidObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new AlreadyExistsException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, add_partitions_pspec_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeI32(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class add_partitions_pspec_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_partitions_pspec_resultTupleScheme getScheme() {
        return new add_partitions_pspec_resultTupleScheme();
      }
    }

    private static class add_partitions_pspec_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<add_partitions_pspec_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, add_partitions_pspec_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          oprot.writeI32(struct.success);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, add_partitions_pspec_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = iprot.readI32();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new InvalidObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new AlreadyExistsException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class append_partition_args implements org.apache.thrift.TBase<append_partition_args, append_partition_args._Fields>, java.io.Serializable, Cloneable, Comparable<append_partition_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("append_partition_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField PART_VALS_FIELD_DESC = new org.apache.thrift.protocol.TField("part_vals", org.apache.thrift.protocol.TType.LIST, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new append_partition_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new append_partition_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> part_vals; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TBL_NAME((short)2, "tbl_name"),
      PART_VALS((short)3, "part_vals");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // PART_VALS
            return PART_VALS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PART_VALS, new org.apache.thrift.meta_data.FieldMetaData("part_vals", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(append_partition_args.class, metaDataMap);
    }

    public append_partition_args() {
    }

    public append_partition_args(
      java.lang.String db_name,
      java.lang.String tbl_name,
      java.util.List<java.lang.String> part_vals)
    {
      this();
      this.db_name = db_name;
      this.tbl_name = tbl_name;
      this.part_vals = part_vals;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public append_partition_args(append_partition_args other) {
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      if (other.isSetPart_vals()) {
        java.util.List<java.lang.String> __this__part_vals = new java.util.ArrayList<java.lang.String>(other.part_vals);
        this.part_vals = __this__part_vals;
      }
    }

    public append_partition_args deepCopy() {
      return new append_partition_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.tbl_name = null;
      this.part_vals = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    public int getPart_valsSize() {
      return (this.part_vals == null) ? 0 : this.part_vals.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getPart_valsIterator() {
      return (this.part_vals == null) ? null : this.part_vals.iterator();
    }

    public void addToPart_vals(java.lang.String elem) {
      if (this.part_vals == null) {
        this.part_vals = new java.util.ArrayList<java.lang.String>();
      }
      this.part_vals.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getPart_vals() {
      return this.part_vals;
    }

    public void setPart_vals(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> part_vals) {
      this.part_vals = part_vals;
    }

    public void unsetPart_vals() {
      this.part_vals = null;
    }

    /** Returns true if field part_vals is set (has been assigned a value) and false otherwise */
    public boolean isSetPart_vals() {
      return this.part_vals != null;
    }

    public void setPart_valsIsSet(boolean value) {
      if (!value) {
        this.part_vals = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case PART_VALS:
        if (value == null) {
          unsetPart_vals();
        } else {
          setPart_vals((java.util.List<java.lang.String>)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TBL_NAME:
        return getTbl_name();

      case PART_VALS:
        return getPart_vals();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TBL_NAME:
        return isSetTbl_name();
      case PART_VALS:
        return isSetPart_vals();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof append_partition_args)
        return this.equals((append_partition_args)that);
      return false;
    }

    public boolean equals(append_partition_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_part_vals = true && this.isSetPart_vals();
      boolean that_present_part_vals = true && that.isSetPart_vals();
      if (this_present_part_vals || that_present_part_vals) {
        if (!(this_present_part_vals && that_present_part_vals))
          return false;
        if (!this.part_vals.equals(that.part_vals))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetPart_vals()) ? 131071 : 524287);
      if (isSetPart_vals())
        hashCode = hashCode * 8191 + part_vals.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(append_partition_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetPart_vals(), other.isSetPart_vals());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPart_vals()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.part_vals, other.part_vals);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("append_partition_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("part_vals:");
      if (this.part_vals == null) {
        sb.append("null");
      } else {
        sb.append(this.part_vals);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class append_partition_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public append_partition_argsStandardScheme getScheme() {
        return new append_partition_argsStandardScheme();
      }
    }

    private static class append_partition_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<append_partition_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, append_partition_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // PART_VALS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1122 = iprot.readListBegin();
                  struct.part_vals = new java.util.ArrayList<java.lang.String>(_list1122.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem1123;
                  for (int _i1124 = 0; _i1124 < _list1122.size; ++_i1124)
                  {
                    _elem1123 = iprot.readString();
                    struct.part_vals.add(_elem1123);
                  }
                  iprot.readListEnd();
                }
                struct.setPart_valsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, append_partition_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        if (struct.part_vals != null) {
          oprot.writeFieldBegin(PART_VALS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.part_vals.size()));
            for (java.lang.String _iter1125 : struct.part_vals)
            {
              oprot.writeString(_iter1125);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class append_partition_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public append_partition_argsTupleScheme getScheme() {
        return new append_partition_argsTupleScheme();
      }
    }

    private static class append_partition_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<append_partition_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, append_partition_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetPart_vals()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetPart_vals()) {
          {
            oprot.writeI32(struct.part_vals.size());
            for (java.lang.String _iter1126 : struct.part_vals)
            {
              oprot.writeString(_iter1126);
            }
          }
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, append_partition_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          {
            org.apache.thrift.protocol.TList _list1127 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.part_vals = new java.util.ArrayList<java.lang.String>(_list1127.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem1128;
            for (int _i1129 = 0; _i1129 < _list1127.size; ++_i1129)
            {
              _elem1128 = iprot.readString();
              struct.part_vals.add(_elem1128);
            }
          }
          struct.setPart_valsIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class append_partition_result implements org.apache.thrift.TBase<append_partition_result, append_partition_result._Fields>, java.io.Serializable, Cloneable, Comparable<append_partition_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("append_partition_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new append_partition_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new append_partition_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable Partition success; // required
    private @org.apache.thrift.annotation.Nullable InvalidObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable AlreadyExistsException o2; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Partition.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AlreadyExistsException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(append_partition_result.class, metaDataMap);
    }

    public append_partition_result() {
    }

    public append_partition_result(
      Partition success,
      InvalidObjectException o1,
      AlreadyExistsException o2,
      MetaException o3)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public append_partition_result(append_partition_result other) {
      if (other.isSetSuccess()) {
        this.success = new Partition(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new InvalidObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new AlreadyExistsException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
    }

    public append_partition_result deepCopy() {
      return new append_partition_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public Partition getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable Partition success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable InvalidObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public AlreadyExistsException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable AlreadyExistsException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Partition)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((InvalidObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((AlreadyExistsException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof append_partition_result)
        return this.equals((append_partition_result)that);
      return false;
    }

    public boolean equals(append_partition_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(append_partition_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("append_partition_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class append_partition_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public append_partition_resultStandardScheme getScheme() {
        return new append_partition_resultStandardScheme();
      }
    }

    private static class append_partition_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<append_partition_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, append_partition_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new Partition();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new InvalidObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new AlreadyExistsException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, append_partition_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class append_partition_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public append_partition_resultTupleScheme getScheme() {
        return new append_partition_resultTupleScheme();
      }
    }

    private static class append_partition_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<append_partition_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, append_partition_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, append_partition_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = new Partition();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new InvalidObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new AlreadyExistsException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_partitions_req_args implements org.apache.thrift.TBase<add_partitions_req_args, add_partitions_req_args._Fields>, java.io.Serializable, Cloneable, Comparable<add_partitions_req_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("add_partitions_req_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new add_partitions_req_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new add_partitions_req_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable AddPartitionsRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AddPartitionsRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(add_partitions_req_args.class, metaDataMap);
    }

    public add_partitions_req_args() {
    }

    public add_partitions_req_args(
      AddPartitionsRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public add_partitions_req_args(add_partitions_req_args other) {
      if (other.isSetRequest()) {
        this.request = new AddPartitionsRequest(other.request);
      }
    }

    public add_partitions_req_args deepCopy() {
      return new add_partitions_req_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    @org.apache.thrift.annotation.Nullable
    public AddPartitionsRequest getRequest() {
      return this.request;
    }

    public void setRequest(@org.apache.thrift.annotation.Nullable AddPartitionsRequest request) {
      this.request = request;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((AddPartitionsRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof add_partitions_req_args)
        return this.equals((add_partitions_req_args)that);
      return false;
    }

    public boolean equals(add_partitions_req_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRequest()) ? 131071 : 524287);
      if (isSetRequest())
        hashCode = hashCode * 8191 + request.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(add_partitions_req_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRequest(), other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("add_partitions_req_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class add_partitions_req_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_partitions_req_argsStandardScheme getScheme() {
        return new add_partitions_req_argsStandardScheme();
      }
    }

    private static class add_partitions_req_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<add_partitions_req_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, add_partitions_req_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new AddPartitionsRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, add_partitions_req_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class add_partitions_req_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_partitions_req_argsTupleScheme getScheme() {
        return new add_partitions_req_argsTupleScheme();
      }
    }

    private static class add_partitions_req_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<add_partitions_req_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, add_partitions_req_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, add_partitions_req_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new AddPartitionsRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_partitions_req_result implements org.apache.thrift.TBase<add_partitions_req_result, add_partitions_req_result._Fields>, java.io.Serializable, Cloneable, Comparable<add_partitions_req_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("add_partitions_req_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new add_partitions_req_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new add_partitions_req_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable AddPartitionsResult success; // required
    private @org.apache.thrift.annotation.Nullable InvalidObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable AlreadyExistsException o2; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AddPartitionsResult.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AlreadyExistsException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(add_partitions_req_result.class, metaDataMap);
    }

    public add_partitions_req_result() {
    }

    public add_partitions_req_result(
      AddPartitionsResult success,
      InvalidObjectException o1,
      AlreadyExistsException o2,
      MetaException o3)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public add_partitions_req_result(add_partitions_req_result other) {
      if (other.isSetSuccess()) {
        this.success = new AddPartitionsResult(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new InvalidObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new AlreadyExistsException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
    }

    public add_partitions_req_result deepCopy() {
      return new add_partitions_req_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public AddPartitionsResult getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable AddPartitionsResult success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable InvalidObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public AlreadyExistsException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable AlreadyExistsException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((AddPartitionsResult)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((InvalidObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((AlreadyExistsException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof add_partitions_req_result)
        return this.equals((add_partitions_req_result)that);
      return false;
    }

    public boolean equals(add_partitions_req_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(add_partitions_req_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("add_partitions_req_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class add_partitions_req_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_partitions_req_resultStandardScheme getScheme() {
        return new add_partitions_req_resultStandardScheme();
      }
    }

    private static class add_partitions_req_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<add_partitions_req_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, add_partitions_req_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new AddPartitionsResult();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new InvalidObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new AlreadyExistsException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, add_partitions_req_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class add_partitions_req_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_partitions_req_resultTupleScheme getScheme() {
        return new add_partitions_req_resultTupleScheme();
      }
    }

    private static class add_partitions_req_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<add_partitions_req_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, add_partitions_req_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, add_partitions_req_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = new AddPartitionsResult();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new InvalidObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new AlreadyExistsException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class append_partition_with_environment_context_args implements org.apache.thrift.TBase<append_partition_with_environment_context_args, append_partition_with_environment_context_args._Fields>, java.io.Serializable, Cloneable, Comparable<append_partition_with_environment_context_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("append_partition_with_environment_context_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField PART_VALS_FIELD_DESC = new org.apache.thrift.protocol.TField("part_vals", org.apache.thrift.protocol.TType.LIST, (short)3);
    private static final org.apache.thrift.protocol.TField ENVIRONMENT_CONTEXT_FIELD_DESC = new org.apache.thrift.protocol.TField("environment_context", org.apache.thrift.protocol.TType.STRUCT, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new append_partition_with_environment_context_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new append_partition_with_environment_context_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> part_vals; // required
    private @org.apache.thrift.annotation.Nullable EnvironmentContext environment_context; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TBL_NAME((short)2, "tbl_name"),
      PART_VALS((short)3, "part_vals"),
      ENVIRONMENT_CONTEXT((short)4, "environment_context");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // PART_VALS
            return PART_VALS;
          case 4: // ENVIRONMENT_CONTEXT
            return ENVIRONMENT_CONTEXT;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PART_VALS, new org.apache.thrift.meta_data.FieldMetaData("part_vals", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      tmpMap.put(_Fields.ENVIRONMENT_CONTEXT, new org.apache.thrift.meta_data.FieldMetaData("environment_context", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, EnvironmentContext.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(append_partition_with_environment_context_args.class, metaDataMap);
    }

    public append_partition_with_environment_context_args() {
    }

    public append_partition_with_environment_context_args(
      java.lang.String db_name,
      java.lang.String tbl_name,
      java.util.List<java.lang.String> part_vals,
      EnvironmentContext environment_context)
    {
      this();
      this.db_name = db_name;
      this.tbl_name = tbl_name;
      this.part_vals = part_vals;
      this.environment_context = environment_context;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public append_partition_with_environment_context_args(append_partition_with_environment_context_args other) {
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      if (other.isSetPart_vals()) {
        java.util.List<java.lang.String> __this__part_vals = new java.util.ArrayList<java.lang.String>(other.part_vals);
        this.part_vals = __this__part_vals;
      }
      if (other.isSetEnvironment_context()) {
        this.environment_context = new EnvironmentContext(other.environment_context);
      }
    }

    public append_partition_with_environment_context_args deepCopy() {
      return new append_partition_with_environment_context_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.tbl_name = null;
      this.part_vals = null;
      this.environment_context = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    public int getPart_valsSize() {
      return (this.part_vals == null) ? 0 : this.part_vals.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getPart_valsIterator() {
      return (this.part_vals == null) ? null : this.part_vals.iterator();
    }

    public void addToPart_vals(java.lang.String elem) {
      if (this.part_vals == null) {
        this.part_vals = new java.util.ArrayList<java.lang.String>();
      }
      this.part_vals.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getPart_vals() {
      return this.part_vals;
    }

    public void setPart_vals(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> part_vals) {
      this.part_vals = part_vals;
    }

    public void unsetPart_vals() {
      this.part_vals = null;
    }

    /** Returns true if field part_vals is set (has been assigned a value) and false otherwise */
    public boolean isSetPart_vals() {
      return this.part_vals != null;
    }

    public void setPart_valsIsSet(boolean value) {
      if (!value) {
        this.part_vals = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public EnvironmentContext getEnvironment_context() {
      return this.environment_context;
    }

    public void setEnvironment_context(@org.apache.thrift.annotation.Nullable EnvironmentContext environment_context) {
      this.environment_context = environment_context;
    }

    public void unsetEnvironment_context() {
      this.environment_context = null;
    }

    /** Returns true if field environment_context is set (has been assigned a value) and false otherwise */
    public boolean isSetEnvironment_context() {
      return this.environment_context != null;
    }

    public void setEnvironment_contextIsSet(boolean value) {
      if (!value) {
        this.environment_context = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case PART_VALS:
        if (value == null) {
          unsetPart_vals();
        } else {
          setPart_vals((java.util.List<java.lang.String>)value);
        }
        break;

      case ENVIRONMENT_CONTEXT:
        if (value == null) {
          unsetEnvironment_context();
        } else {
          setEnvironment_context((EnvironmentContext)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TBL_NAME:
        return getTbl_name();

      case PART_VALS:
        return getPart_vals();

      case ENVIRONMENT_CONTEXT:
        return getEnvironment_context();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TBL_NAME:
        return isSetTbl_name();
      case PART_VALS:
        return isSetPart_vals();
      case ENVIRONMENT_CONTEXT:
        return isSetEnvironment_context();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof append_partition_with_environment_context_args)
        return this.equals((append_partition_with_environment_context_args)that);
      return false;
    }

    public boolean equals(append_partition_with_environment_context_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_part_vals = true && this.isSetPart_vals();
      boolean that_present_part_vals = true && that.isSetPart_vals();
      if (this_present_part_vals || that_present_part_vals) {
        if (!(this_present_part_vals && that_present_part_vals))
          return false;
        if (!this.part_vals.equals(that.part_vals))
          return false;
      }

      boolean this_present_environment_context = true && this.isSetEnvironment_context();
      boolean that_present_environment_context = true && that.isSetEnvironment_context();
      if (this_present_environment_context || that_present_environment_context) {
        if (!(this_present_environment_context && that_present_environment_context))
          return false;
        if (!this.environment_context.equals(that.environment_context))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetPart_vals()) ? 131071 : 524287);
      if (isSetPart_vals())
        hashCode = hashCode * 8191 + part_vals.hashCode();

      hashCode = hashCode * 8191 + ((isSetEnvironment_context()) ? 131071 : 524287);
      if (isSetEnvironment_context())
        hashCode = hashCode * 8191 + environment_context.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(append_partition_with_environment_context_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetPart_vals(), other.isSetPart_vals());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPart_vals()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.part_vals, other.part_vals);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetEnvironment_context(), other.isSetEnvironment_context());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEnvironment_context()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.environment_context, other.environment_context);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("append_partition_with_environment_context_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("part_vals:");
      if (this.part_vals == null) {
        sb.append("null");
      } else {
        sb.append(this.part_vals);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("environment_context:");
      if (this.environment_context == null) {
        sb.append("null");
      } else {
        sb.append(this.environment_context);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (environment_context != null) {
        environment_context.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class append_partition_with_environment_context_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public append_partition_with_environment_context_argsStandardScheme getScheme() {
        return new append_partition_with_environment_context_argsStandardScheme();
      }
    }

    private static class append_partition_with_environment_context_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<append_partition_with_environment_context_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, append_partition_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // PART_VALS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1130 = iprot.readListBegin();
                  struct.part_vals = new java.util.ArrayList<java.lang.String>(_list1130.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem1131;
                  for (int _i1132 = 0; _i1132 < _list1130.size; ++_i1132)
                  {
                    _elem1131 = iprot.readString();
                    struct.part_vals.add(_elem1131);
                  }
                  iprot.readListEnd();
                }
                struct.setPart_valsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // ENVIRONMENT_CONTEXT
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.environment_context = new EnvironmentContext();
                struct.environment_context.read(iprot);
                struct.setEnvironment_contextIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, append_partition_with_environment_context_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        if (struct.part_vals != null) {
          oprot.writeFieldBegin(PART_VALS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.part_vals.size()));
            for (java.lang.String _iter1133 : struct.part_vals)
            {
              oprot.writeString(_iter1133);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.environment_context != null) {
          oprot.writeFieldBegin(ENVIRONMENT_CONTEXT_FIELD_DESC);
          struct.environment_context.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class append_partition_with_environment_context_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public append_partition_with_environment_context_argsTupleScheme getScheme() {
        return new append_partition_with_environment_context_argsTupleScheme();
      }
    }

    private static class append_partition_with_environment_context_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<append_partition_with_environment_context_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, append_partition_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetPart_vals()) {
          optionals.set(2);
        }
        if (struct.isSetEnvironment_context()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetPart_vals()) {
          {
            oprot.writeI32(struct.part_vals.size());
            for (java.lang.String _iter1134 : struct.part_vals)
            {
              oprot.writeString(_iter1134);
            }
          }
        }
        if (struct.isSetEnvironment_context()) {
          struct.environment_context.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, append_partition_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          {
            org.apache.thrift.protocol.TList _list1135 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.part_vals = new java.util.ArrayList<java.lang.String>(_list1135.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem1136;
            for (int _i1137 = 0; _i1137 < _list1135.size; ++_i1137)
            {
              _elem1136 = iprot.readString();
              struct.part_vals.add(_elem1136);
            }
          }
          struct.setPart_valsIsSet(true);
        }
        if (incoming.get(3)) {
          struct.environment_context = new EnvironmentContext();
          struct.environment_context.read(iprot);
          struct.setEnvironment_contextIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class append_partition_with_environment_context_result implements org.apache.thrift.TBase<append_partition_with_environment_context_result, append_partition_with_environment_context_result._Fields>, java.io.Serializable, Cloneable, Comparable<append_partition_with_environment_context_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("append_partition_with_environment_context_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new append_partition_with_environment_context_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new append_partition_with_environment_context_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable Partition success; // required
    private @org.apache.thrift.annotation.Nullable InvalidObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable AlreadyExistsException o2; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Partition.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AlreadyExistsException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(append_partition_with_environment_context_result.class, metaDataMap);
    }

    public append_partition_with_environment_context_result() {
    }

    public append_partition_with_environment_context_result(
      Partition success,
      InvalidObjectException o1,
      AlreadyExistsException o2,
      MetaException o3)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public append_partition_with_environment_context_result(append_partition_with_environment_context_result other) {
      if (other.isSetSuccess()) {
        this.success = new Partition(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new InvalidObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new AlreadyExistsException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
    }

    public append_partition_with_environment_context_result deepCopy() {
      return new append_partition_with_environment_context_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public Partition getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable Partition success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable InvalidObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public AlreadyExistsException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable AlreadyExistsException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Partition)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((InvalidObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((AlreadyExistsException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof append_partition_with_environment_context_result)
        return this.equals((append_partition_with_environment_context_result)that);
      return false;
    }

    public boolean equals(append_partition_with_environment_context_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(append_partition_with_environment_context_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("append_partition_with_environment_context_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class append_partition_with_environment_context_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public append_partition_with_environment_context_resultStandardScheme getScheme() {
        return new append_partition_with_environment_context_resultStandardScheme();
      }
    }

    private static class append_partition_with_environment_context_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<append_partition_with_environment_context_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, append_partition_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new Partition();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new InvalidObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new AlreadyExistsException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, append_partition_with_environment_context_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class append_partition_with_environment_context_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public append_partition_with_environment_context_resultTupleScheme getScheme() {
        return new append_partition_with_environment_context_resultTupleScheme();
      }
    }

    private static class append_partition_with_environment_context_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<append_partition_with_environment_context_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, append_partition_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, append_partition_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = new Partition();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new InvalidObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new AlreadyExistsException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class append_partition_by_name_args implements org.apache.thrift.TBase<append_partition_by_name_args, append_partition_by_name_args._Fields>, java.io.Serializable, Cloneable, Comparable<append_partition_by_name_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("append_partition_by_name_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField PART_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("part_name", org.apache.thrift.protocol.TType.STRING, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new append_partition_by_name_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new append_partition_by_name_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String part_name; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TBL_NAME((short)2, "tbl_name"),
      PART_NAME((short)3, "part_name");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // PART_NAME
            return PART_NAME;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PART_NAME, new org.apache.thrift.meta_data.FieldMetaData("part_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(append_partition_by_name_args.class, metaDataMap);
    }

    public append_partition_by_name_args() {
    }

    public append_partition_by_name_args(
      java.lang.String db_name,
      java.lang.String tbl_name,
      java.lang.String part_name)
    {
      this();
      this.db_name = db_name;
      this.tbl_name = tbl_name;
      this.part_name = part_name;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public append_partition_by_name_args(append_partition_by_name_args other) {
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      if (other.isSetPart_name()) {
        this.part_name = other.part_name;
      }
    }

    public append_partition_by_name_args deepCopy() {
      return new append_partition_by_name_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.tbl_name = null;
      this.part_name = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getPart_name() {
      return this.part_name;
    }

    public void setPart_name(@org.apache.thrift.annotation.Nullable java.lang.String part_name) {
      this.part_name = part_name;
    }

    public void unsetPart_name() {
      this.part_name = null;
    }

    /** Returns true if field part_name is set (has been assigned a value) and false otherwise */
    public boolean isSetPart_name() {
      return this.part_name != null;
    }

    public void setPart_nameIsSet(boolean value) {
      if (!value) {
        this.part_name = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case PART_NAME:
        if (value == null) {
          unsetPart_name();
        } else {
          setPart_name((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TBL_NAME:
        return getTbl_name();

      case PART_NAME:
        return getPart_name();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TBL_NAME:
        return isSetTbl_name();
      case PART_NAME:
        return isSetPart_name();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof append_partition_by_name_args)
        return this.equals((append_partition_by_name_args)that);
      return false;
    }

    public boolean equals(append_partition_by_name_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_part_name = true && this.isSetPart_name();
      boolean that_present_part_name = true && that.isSetPart_name();
      if (this_present_part_name || that_present_part_name) {
        if (!(this_present_part_name && that_present_part_name))
          return false;
        if (!this.part_name.equals(that.part_name))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetPart_name()) ? 131071 : 524287);
      if (isSetPart_name())
        hashCode = hashCode * 8191 + part_name.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(append_partition_by_name_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetPart_name(), other.isSetPart_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPart_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.part_name, other.part_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("append_partition_by_name_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("part_name:");
      if (this.part_name == null) {
        sb.append("null");
      } else {
        sb.append(this.part_name);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class append_partition_by_name_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public append_partition_by_name_argsStandardScheme getScheme() {
        return new append_partition_by_name_argsStandardScheme();
      }
    }

    private static class append_partition_by_name_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<append_partition_by_name_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, append_partition_by_name_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // PART_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.part_name = iprot.readString();
                struct.setPart_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, append_partition_by_name_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        if (struct.part_name != null) {
          oprot.writeFieldBegin(PART_NAME_FIELD_DESC);
          oprot.writeString(struct.part_name);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class append_partition_by_name_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public append_partition_by_name_argsTupleScheme getScheme() {
        return new append_partition_by_name_argsTupleScheme();
      }
    }

    private static class append_partition_by_name_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<append_partition_by_name_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, append_partition_by_name_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetPart_name()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetPart_name()) {
          oprot.writeString(struct.part_name);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, append_partition_by_name_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.part_name = iprot.readString();
          struct.setPart_nameIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class append_partition_by_name_result implements org.apache.thrift.TBase<append_partition_by_name_result, append_partition_by_name_result._Fields>, java.io.Serializable, Cloneable, Comparable<append_partition_by_name_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("append_partition_by_name_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new append_partition_by_name_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new append_partition_by_name_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable Partition success; // required
    private @org.apache.thrift.annotation.Nullable InvalidObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable AlreadyExistsException o2; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Partition.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AlreadyExistsException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(append_partition_by_name_result.class, metaDataMap);
    }

    public append_partition_by_name_result() {
    }

    public append_partition_by_name_result(
      Partition success,
      InvalidObjectException o1,
      AlreadyExistsException o2,
      MetaException o3)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public append_partition_by_name_result(append_partition_by_name_result other) {
      if (other.isSetSuccess()) {
        this.success = new Partition(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new InvalidObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new AlreadyExistsException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
    }

    public append_partition_by_name_result deepCopy() {
      return new append_partition_by_name_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public Partition getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable Partition success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable InvalidObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public AlreadyExistsException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable AlreadyExistsException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Partition)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((InvalidObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((AlreadyExistsException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof append_partition_by_name_result)
        return this.equals((append_partition_by_name_result)that);
      return false;
    }

    public boolean equals(append_partition_by_name_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(append_partition_by_name_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("append_partition_by_name_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class append_partition_by_name_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public append_partition_by_name_resultStandardScheme getScheme() {
        return new append_partition_by_name_resultStandardScheme();
      }
    }

    private static class append_partition_by_name_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<append_partition_by_name_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, append_partition_by_name_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new Partition();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new InvalidObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new AlreadyExistsException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, append_partition_by_name_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class append_partition_by_name_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public append_partition_by_name_resultTupleScheme getScheme() {
        return new append_partition_by_name_resultTupleScheme();
      }
    }

    private static class append_partition_by_name_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<append_partition_by_name_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, append_partition_by_name_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, append_partition_by_name_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = new Partition();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new InvalidObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new AlreadyExistsException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class append_partition_by_name_with_environment_context_args implements org.apache.thrift.TBase<append_partition_by_name_with_environment_context_args, append_partition_by_name_with_environment_context_args._Fields>, java.io.Serializable, Cloneable, Comparable<append_partition_by_name_with_environment_context_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("append_partition_by_name_with_environment_context_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField PART_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("part_name", org.apache.thrift.protocol.TType.STRING, (short)3);
    private static final org.apache.thrift.protocol.TField ENVIRONMENT_CONTEXT_FIELD_DESC = new org.apache.thrift.protocol.TField("environment_context", org.apache.thrift.protocol.TType.STRUCT, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new append_partition_by_name_with_environment_context_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new append_partition_by_name_with_environment_context_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String part_name; // required
    private @org.apache.thrift.annotation.Nullable EnvironmentContext environment_context; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TBL_NAME((short)2, "tbl_name"),
      PART_NAME((short)3, "part_name"),
      ENVIRONMENT_CONTEXT((short)4, "environment_context");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // PART_NAME
            return PART_NAME;
          case 4: // ENVIRONMENT_CONTEXT
            return ENVIRONMENT_CONTEXT;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PART_NAME, new org.apache.thrift.meta_data.FieldMetaData("part_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.ENVIRONMENT_CONTEXT, new org.apache.thrift.meta_data.FieldMetaData("environment_context", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, EnvironmentContext.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(append_partition_by_name_with_environment_context_args.class, metaDataMap);
    }

    public append_partition_by_name_with_environment_context_args() {
    }

    public append_partition_by_name_with_environment_context_args(
      java.lang.String db_name,
      java.lang.String tbl_name,
      java.lang.String part_name,
      EnvironmentContext environment_context)
    {
      this();
      this.db_name = db_name;
      this.tbl_name = tbl_name;
      this.part_name = part_name;
      this.environment_context = environment_context;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public append_partition_by_name_with_environment_context_args(append_partition_by_name_with_environment_context_args other) {
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      if (other.isSetPart_name()) {
        this.part_name = other.part_name;
      }
      if (other.isSetEnvironment_context()) {
        this.environment_context = new EnvironmentContext(other.environment_context);
      }
    }

    public append_partition_by_name_with_environment_context_args deepCopy() {
      return new append_partition_by_name_with_environment_context_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.tbl_name = null;
      this.part_name = null;
      this.environment_context = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getPart_name() {
      return this.part_name;
    }

    public void setPart_name(@org.apache.thrift.annotation.Nullable java.lang.String part_name) {
      this.part_name = part_name;
    }

    public void unsetPart_name() {
      this.part_name = null;
    }

    /** Returns true if field part_name is set (has been assigned a value) and false otherwise */
    public boolean isSetPart_name() {
      return this.part_name != null;
    }

    public void setPart_nameIsSet(boolean value) {
      if (!value) {
        this.part_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public EnvironmentContext getEnvironment_context() {
      return this.environment_context;
    }

    public void setEnvironment_context(@org.apache.thrift.annotation.Nullable EnvironmentContext environment_context) {
      this.environment_context = environment_context;
    }

    public void unsetEnvironment_context() {
      this.environment_context = null;
    }

    /** Returns true if field environment_context is set (has been assigned a value) and false otherwise */
    public boolean isSetEnvironment_context() {
      return this.environment_context != null;
    }

    public void setEnvironment_contextIsSet(boolean value) {
      if (!value) {
        this.environment_context = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case PART_NAME:
        if (value == null) {
          unsetPart_name();
        } else {
          setPart_name((java.lang.String)value);
        }
        break;

      case ENVIRONMENT_CONTEXT:
        if (value == null) {
          unsetEnvironment_context();
        } else {
          setEnvironment_context((EnvironmentContext)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TBL_NAME:
        return getTbl_name();

      case PART_NAME:
        return getPart_name();

      case ENVIRONMENT_CONTEXT:
        return getEnvironment_context();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TBL_NAME:
        return isSetTbl_name();
      case PART_NAME:
        return isSetPart_name();
      case ENVIRONMENT_CONTEXT:
        return isSetEnvironment_context();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof append_partition_by_name_with_environment_context_args)
        return this.equals((append_partition_by_name_with_environment_context_args)that);
      return false;
    }

    public boolean equals(append_partition_by_name_with_environment_context_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_part_name = true && this.isSetPart_name();
      boolean that_present_part_name = true && that.isSetPart_name();
      if (this_present_part_name || that_present_part_name) {
        if (!(this_present_part_name && that_present_part_name))
          return false;
        if (!this.part_name.equals(that.part_name))
          return false;
      }

      boolean this_present_environment_context = true && this.isSetEnvironment_context();
      boolean that_present_environment_context = true && that.isSetEnvironment_context();
      if (this_present_environment_context || that_present_environment_context) {
        if (!(this_present_environment_context && that_present_environment_context))
          return false;
        if (!this.environment_context.equals(that.environment_context))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetPart_name()) ? 131071 : 524287);
      if (isSetPart_name())
        hashCode = hashCode * 8191 + part_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetEnvironment_context()) ? 131071 : 524287);
      if (isSetEnvironment_context())
        hashCode = hashCode * 8191 + environment_context.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(append_partition_by_name_with_environment_context_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetPart_name(), other.isSetPart_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPart_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.part_name, other.part_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetEnvironment_context(), other.isSetEnvironment_context());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEnvironment_context()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.environment_context, other.environment_context);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("append_partition_by_name_with_environment_context_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("part_name:");
      if (this.part_name == null) {
        sb.append("null");
      } else {
        sb.append(this.part_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("environment_context:");
      if (this.environment_context == null) {
        sb.append("null");
      } else {
        sb.append(this.environment_context);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (environment_context != null) {
        environment_context.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class append_partition_by_name_with_environment_context_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public append_partition_by_name_with_environment_context_argsStandardScheme getScheme() {
        return new append_partition_by_name_with_environment_context_argsStandardScheme();
      }
    }

    private static class append_partition_by_name_with_environment_context_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<append_partition_by_name_with_environment_context_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, append_partition_by_name_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // PART_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.part_name = iprot.readString();
                struct.setPart_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // ENVIRONMENT_CONTEXT
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.environment_context = new EnvironmentContext();
                struct.environment_context.read(iprot);
                struct.setEnvironment_contextIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, append_partition_by_name_with_environment_context_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        if (struct.part_name != null) {
          oprot.writeFieldBegin(PART_NAME_FIELD_DESC);
          oprot.writeString(struct.part_name);
          oprot.writeFieldEnd();
        }
        if (struct.environment_context != null) {
          oprot.writeFieldBegin(ENVIRONMENT_CONTEXT_FIELD_DESC);
          struct.environment_context.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class append_partition_by_name_with_environment_context_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public append_partition_by_name_with_environment_context_argsTupleScheme getScheme() {
        return new append_partition_by_name_with_environment_context_argsTupleScheme();
      }
    }

    private static class append_partition_by_name_with_environment_context_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<append_partition_by_name_with_environment_context_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, append_partition_by_name_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetPart_name()) {
          optionals.set(2);
        }
        if (struct.isSetEnvironment_context()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetPart_name()) {
          oprot.writeString(struct.part_name);
        }
        if (struct.isSetEnvironment_context()) {
          struct.environment_context.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, append_partition_by_name_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.part_name = iprot.readString();
          struct.setPart_nameIsSet(true);
        }
        if (incoming.get(3)) {
          struct.environment_context = new EnvironmentContext();
          struct.environment_context.read(iprot);
          struct.setEnvironment_contextIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class append_partition_by_name_with_environment_context_result implements org.apache.thrift.TBase<append_partition_by_name_with_environment_context_result, append_partition_by_name_with_environment_context_result._Fields>, java.io.Serializable, Cloneable, Comparable<append_partition_by_name_with_environment_context_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("append_partition_by_name_with_environment_context_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new append_partition_by_name_with_environment_context_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new append_partition_by_name_with_environment_context_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable Partition success; // required
    private @org.apache.thrift.annotation.Nullable InvalidObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable AlreadyExistsException o2; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Partition.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AlreadyExistsException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(append_partition_by_name_with_environment_context_result.class, metaDataMap);
    }

    public append_partition_by_name_with_environment_context_result() {
    }

    public append_partition_by_name_with_environment_context_result(
      Partition success,
      InvalidObjectException o1,
      AlreadyExistsException o2,
      MetaException o3)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public append_partition_by_name_with_environment_context_result(append_partition_by_name_with_environment_context_result other) {
      if (other.isSetSuccess()) {
        this.success = new Partition(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new InvalidObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new AlreadyExistsException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
    }

    public append_partition_by_name_with_environment_context_result deepCopy() {
      return new append_partition_by_name_with_environment_context_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public Partition getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable Partition success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable InvalidObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public AlreadyExistsException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable AlreadyExistsException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Partition)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((InvalidObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((AlreadyExistsException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof append_partition_by_name_with_environment_context_result)
        return this.equals((append_partition_by_name_with_environment_context_result)that);
      return false;
    }

    public boolean equals(append_partition_by_name_with_environment_context_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(append_partition_by_name_with_environment_context_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("append_partition_by_name_with_environment_context_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class append_partition_by_name_with_environment_context_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public append_partition_by_name_with_environment_context_resultStandardScheme getScheme() {
        return new append_partition_by_name_with_environment_context_resultStandardScheme();
      }
    }

    private static class append_partition_by_name_with_environment_context_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<append_partition_by_name_with_environment_context_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, append_partition_by_name_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new Partition();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new InvalidObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new AlreadyExistsException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, append_partition_by_name_with_environment_context_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class append_partition_by_name_with_environment_context_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public append_partition_by_name_with_environment_context_resultTupleScheme getScheme() {
        return new append_partition_by_name_with_environment_context_resultTupleScheme();
      }
    }

    private static class append_partition_by_name_with_environment_context_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<append_partition_by_name_with_environment_context_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, append_partition_by_name_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, append_partition_by_name_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = new Partition();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new InvalidObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new AlreadyExistsException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_partition_args implements org.apache.thrift.TBase<drop_partition_args, drop_partition_args._Fields>, java.io.Serializable, Cloneable, Comparable<drop_partition_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_partition_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField PART_VALS_FIELD_DESC = new org.apache.thrift.protocol.TField("part_vals", org.apache.thrift.protocol.TType.LIST, (short)3);
    private static final org.apache.thrift.protocol.TField DELETE_DATA_FIELD_DESC = new org.apache.thrift.protocol.TField("deleteData", org.apache.thrift.protocol.TType.BOOL, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_partition_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_partition_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> part_vals; // required
    private boolean deleteData; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TBL_NAME((short)2, "tbl_name"),
      PART_VALS((short)3, "part_vals"),
      DELETE_DATA((short)4, "deleteData");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // PART_VALS
            return PART_VALS;
          case 4: // DELETE_DATA
            return DELETE_DATA;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __DELETEDATA_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PART_VALS, new org.apache.thrift.meta_data.FieldMetaData("part_vals", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      tmpMap.put(_Fields.DELETE_DATA, new org.apache.thrift.meta_data.FieldMetaData("deleteData", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_partition_args.class, metaDataMap);
    }

    public drop_partition_args() {
    }

    public drop_partition_args(
      java.lang.String db_name,
      java.lang.String tbl_name,
      java.util.List<java.lang.String> part_vals,
      boolean deleteData)
    {
      this();
      this.db_name = db_name;
      this.tbl_name = tbl_name;
      this.part_vals = part_vals;
      this.deleteData = deleteData;
      setDeleteDataIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_partition_args(drop_partition_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      if (other.isSetPart_vals()) {
        java.util.List<java.lang.String> __this__part_vals = new java.util.ArrayList<java.lang.String>(other.part_vals);
        this.part_vals = __this__part_vals;
      }
      this.deleteData = other.deleteData;
    }

    public drop_partition_args deepCopy() {
      return new drop_partition_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.tbl_name = null;
      this.part_vals = null;
      setDeleteDataIsSet(false);
      this.deleteData = false;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    public int getPart_valsSize() {
      return (this.part_vals == null) ? 0 : this.part_vals.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getPart_valsIterator() {
      return (this.part_vals == null) ? null : this.part_vals.iterator();
    }

    public void addToPart_vals(java.lang.String elem) {
      if (this.part_vals == null) {
        this.part_vals = new java.util.ArrayList<java.lang.String>();
      }
      this.part_vals.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getPart_vals() {
      return this.part_vals;
    }

    public void setPart_vals(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> part_vals) {
      this.part_vals = part_vals;
    }

    public void unsetPart_vals() {
      this.part_vals = null;
    }

    /** Returns true if field part_vals is set (has been assigned a value) and false otherwise */
    public boolean isSetPart_vals() {
      return this.part_vals != null;
    }

    public void setPart_valsIsSet(boolean value) {
      if (!value) {
        this.part_vals = null;
      }
    }

    public boolean isDeleteData() {
      return this.deleteData;
    }

    public void setDeleteData(boolean deleteData) {
      this.deleteData = deleteData;
      setDeleteDataIsSet(true);
    }

    public void unsetDeleteData() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __DELETEDATA_ISSET_ID);
    }

    /** Returns true if field deleteData is set (has been assigned a value) and false otherwise */
    public boolean isSetDeleteData() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __DELETEDATA_ISSET_ID);
    }

    public void setDeleteDataIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __DELETEDATA_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case PART_VALS:
        if (value == null) {
          unsetPart_vals();
        } else {
          setPart_vals((java.util.List<java.lang.String>)value);
        }
        break;

      case DELETE_DATA:
        if (value == null) {
          unsetDeleteData();
        } else {
          setDeleteData((java.lang.Boolean)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TBL_NAME:
        return getTbl_name();

      case PART_VALS:
        return getPart_vals();

      case DELETE_DATA:
        return isDeleteData();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TBL_NAME:
        return isSetTbl_name();
      case PART_VALS:
        return isSetPart_vals();
      case DELETE_DATA:
        return isSetDeleteData();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_partition_args)
        return this.equals((drop_partition_args)that);
      return false;
    }

    public boolean equals(drop_partition_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_part_vals = true && this.isSetPart_vals();
      boolean that_present_part_vals = true && that.isSetPart_vals();
      if (this_present_part_vals || that_present_part_vals) {
        if (!(this_present_part_vals && that_present_part_vals))
          return false;
        if (!this.part_vals.equals(that.part_vals))
          return false;
      }

      boolean this_present_deleteData = true;
      boolean that_present_deleteData = true;
      if (this_present_deleteData || that_present_deleteData) {
        if (!(this_present_deleteData && that_present_deleteData))
          return false;
        if (this.deleteData != that.deleteData)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetPart_vals()) ? 131071 : 524287);
      if (isSetPart_vals())
        hashCode = hashCode * 8191 + part_vals.hashCode();

      hashCode = hashCode * 8191 + ((deleteData) ? 131071 : 524287);

      return hashCode;
    }

    @Override
    public int compareTo(drop_partition_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetPart_vals(), other.isSetPart_vals());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPart_vals()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.part_vals, other.part_vals);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetDeleteData(), other.isSetDeleteData());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDeleteData()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.deleteData, other.deleteData);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_partition_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("part_vals:");
      if (this.part_vals == null) {
        sb.append("null");
      } else {
        sb.append(this.part_vals);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("deleteData:");
      sb.append(this.deleteData);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_partition_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_partition_argsStandardScheme getScheme() {
        return new drop_partition_argsStandardScheme();
      }
    }

    private static class drop_partition_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_partition_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_partition_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // PART_VALS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1138 = iprot.readListBegin();
                  struct.part_vals = new java.util.ArrayList<java.lang.String>(_list1138.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem1139;
                  for (int _i1140 = 0; _i1140 < _list1138.size; ++_i1140)
                  {
                    _elem1139 = iprot.readString();
                    struct.part_vals.add(_elem1139);
                  }
                  iprot.readListEnd();
                }
                struct.setPart_valsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // DELETE_DATA
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.deleteData = iprot.readBool();
                struct.setDeleteDataIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_partition_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        if (struct.part_vals != null) {
          oprot.writeFieldBegin(PART_VALS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.part_vals.size()));
            for (java.lang.String _iter1141 : struct.part_vals)
            {
              oprot.writeString(_iter1141);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(DELETE_DATA_FIELD_DESC);
        oprot.writeBool(struct.deleteData);
        oprot.writeFieldEnd();
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_partition_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_partition_argsTupleScheme getScheme() {
        return new drop_partition_argsTupleScheme();
      }
    }

    private static class drop_partition_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_partition_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_partition_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetPart_vals()) {
          optionals.set(2);
        }
        if (struct.isSetDeleteData()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetPart_vals()) {
          {
            oprot.writeI32(struct.part_vals.size());
            for (java.lang.String _iter1142 : struct.part_vals)
            {
              oprot.writeString(_iter1142);
            }
          }
        }
        if (struct.isSetDeleteData()) {
          oprot.writeBool(struct.deleteData);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_partition_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          {
            org.apache.thrift.protocol.TList _list1143 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.part_vals = new java.util.ArrayList<java.lang.String>(_list1143.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem1144;
            for (int _i1145 = 0; _i1145 < _list1143.size; ++_i1145)
            {
              _elem1144 = iprot.readString();
              struct.part_vals.add(_elem1144);
            }
          }
          struct.setPart_valsIsSet(true);
        }
        if (incoming.get(3)) {
          struct.deleteData = iprot.readBool();
          struct.setDeleteDataIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_partition_result implements org.apache.thrift.TBase<drop_partition_result, drop_partition_result._Fields>, java.io.Serializable, Cloneable, Comparable<drop_partition_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_partition_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_partition_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_partition_resultTupleSchemeFactory();

    private boolean success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_partition_result.class, metaDataMap);
    }

    public drop_partition_result() {
    }

    public drop_partition_result(
      boolean success,
      NoSuchObjectException o1,
      MetaException o2)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_partition_result(drop_partition_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public drop_partition_result deepCopy() {
      return new drop_partition_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = false;
      this.o1 = null;
      this.o2 = null;
    }

    public boolean isSuccess() {
      return this.success;
    }

    public void setSuccess(boolean success) {
      this.success = success;
      setSuccessIsSet(true);
    }

    public void unsetSuccess() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.lang.Boolean)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return isSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_partition_result)
        return this.equals((drop_partition_result)that);
      return false;
    }

    public boolean equals(drop_partition_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(drop_partition_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_partition_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_partition_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_partition_resultStandardScheme getScheme() {
        return new drop_partition_resultStandardScheme();
      }
    }

    private static class drop_partition_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_partition_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_partition_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.success = iprot.readBool();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_partition_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeBool(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_partition_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_partition_resultTupleScheme getScheme() {
        return new drop_partition_resultTupleScheme();
      }
    }

    private static class drop_partition_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_partition_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_partition_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          oprot.writeBool(struct.success);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_partition_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = iprot.readBool();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_partition_with_environment_context_args implements org.apache.thrift.TBase<drop_partition_with_environment_context_args, drop_partition_with_environment_context_args._Fields>, java.io.Serializable, Cloneable, Comparable<drop_partition_with_environment_context_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_partition_with_environment_context_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField PART_VALS_FIELD_DESC = new org.apache.thrift.protocol.TField("part_vals", org.apache.thrift.protocol.TType.LIST, (short)3);
    private static final org.apache.thrift.protocol.TField DELETE_DATA_FIELD_DESC = new org.apache.thrift.protocol.TField("deleteData", org.apache.thrift.protocol.TType.BOOL, (short)4);
    private static final org.apache.thrift.protocol.TField ENVIRONMENT_CONTEXT_FIELD_DESC = new org.apache.thrift.protocol.TField("environment_context", org.apache.thrift.protocol.TType.STRUCT, (short)5);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_partition_with_environment_context_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_partition_with_environment_context_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> part_vals; // required
    private boolean deleteData; // required
    private @org.apache.thrift.annotation.Nullable EnvironmentContext environment_context; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TBL_NAME((short)2, "tbl_name"),
      PART_VALS((short)3, "part_vals"),
      DELETE_DATA((short)4, "deleteData"),
      ENVIRONMENT_CONTEXT((short)5, "environment_context");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // PART_VALS
            return PART_VALS;
          case 4: // DELETE_DATA
            return DELETE_DATA;
          case 5: // ENVIRONMENT_CONTEXT
            return ENVIRONMENT_CONTEXT;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __DELETEDATA_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PART_VALS, new org.apache.thrift.meta_data.FieldMetaData("part_vals", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      tmpMap.put(_Fields.DELETE_DATA, new org.apache.thrift.meta_data.FieldMetaData("deleteData", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.ENVIRONMENT_CONTEXT, new org.apache.thrift.meta_data.FieldMetaData("environment_context", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, EnvironmentContext.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_partition_with_environment_context_args.class, metaDataMap);
    }

    public drop_partition_with_environment_context_args() {
    }

    public drop_partition_with_environment_context_args(
      java.lang.String db_name,
      java.lang.String tbl_name,
      java.util.List<java.lang.String> part_vals,
      boolean deleteData,
      EnvironmentContext environment_context)
    {
      this();
      this.db_name = db_name;
      this.tbl_name = tbl_name;
      this.part_vals = part_vals;
      this.deleteData = deleteData;
      setDeleteDataIsSet(true);
      this.environment_context = environment_context;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_partition_with_environment_context_args(drop_partition_with_environment_context_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      if (other.isSetPart_vals()) {
        java.util.List<java.lang.String> __this__part_vals = new java.util.ArrayList<java.lang.String>(other.part_vals);
        this.part_vals = __this__part_vals;
      }
      this.deleteData = other.deleteData;
      if (other.isSetEnvironment_context()) {
        this.environment_context = new EnvironmentContext(other.environment_context);
      }
    }

    public drop_partition_with_environment_context_args deepCopy() {
      return new drop_partition_with_environment_context_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.tbl_name = null;
      this.part_vals = null;
      setDeleteDataIsSet(false);
      this.deleteData = false;
      this.environment_context = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    public int getPart_valsSize() {
      return (this.part_vals == null) ? 0 : this.part_vals.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getPart_valsIterator() {
      return (this.part_vals == null) ? null : this.part_vals.iterator();
    }

    public void addToPart_vals(java.lang.String elem) {
      if (this.part_vals == null) {
        this.part_vals = new java.util.ArrayList<java.lang.String>();
      }
      this.part_vals.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getPart_vals() {
      return this.part_vals;
    }

    public void setPart_vals(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> part_vals) {
      this.part_vals = part_vals;
    }

    public void unsetPart_vals() {
      this.part_vals = null;
    }

    /** Returns true if field part_vals is set (has been assigned a value) and false otherwise */
    public boolean isSetPart_vals() {
      return this.part_vals != null;
    }

    public void setPart_valsIsSet(boolean value) {
      if (!value) {
        this.part_vals = null;
      }
    }

    public boolean isDeleteData() {
      return this.deleteData;
    }

    public void setDeleteData(boolean deleteData) {
      this.deleteData = deleteData;
      setDeleteDataIsSet(true);
    }

    public void unsetDeleteData() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __DELETEDATA_ISSET_ID);
    }

    /** Returns true if field deleteData is set (has been assigned a value) and false otherwise */
    public boolean isSetDeleteData() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __DELETEDATA_ISSET_ID);
    }

    public void setDeleteDataIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __DELETEDATA_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public EnvironmentContext getEnvironment_context() {
      return this.environment_context;
    }

    public void setEnvironment_context(@org.apache.thrift.annotation.Nullable EnvironmentContext environment_context) {
      this.environment_context = environment_context;
    }

    public void unsetEnvironment_context() {
      this.environment_context = null;
    }

    /** Returns true if field environment_context is set (has been assigned a value) and false otherwise */
    public boolean isSetEnvironment_context() {
      return this.environment_context != null;
    }

    public void setEnvironment_contextIsSet(boolean value) {
      if (!value) {
        this.environment_context = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case PART_VALS:
        if (value == null) {
          unsetPart_vals();
        } else {
          setPart_vals((java.util.List<java.lang.String>)value);
        }
        break;

      case DELETE_DATA:
        if (value == null) {
          unsetDeleteData();
        } else {
          setDeleteData((java.lang.Boolean)value);
        }
        break;

      case ENVIRONMENT_CONTEXT:
        if (value == null) {
          unsetEnvironment_context();
        } else {
          setEnvironment_context((EnvironmentContext)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TBL_NAME:
        return getTbl_name();

      case PART_VALS:
        return getPart_vals();

      case DELETE_DATA:
        return isDeleteData();

      case ENVIRONMENT_CONTEXT:
        return getEnvironment_context();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TBL_NAME:
        return isSetTbl_name();
      case PART_VALS:
        return isSetPart_vals();
      case DELETE_DATA:
        return isSetDeleteData();
      case ENVIRONMENT_CONTEXT:
        return isSetEnvironment_context();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_partition_with_environment_context_args)
        return this.equals((drop_partition_with_environment_context_args)that);
      return false;
    }

    public boolean equals(drop_partition_with_environment_context_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_part_vals = true && this.isSetPart_vals();
      boolean that_present_part_vals = true && that.isSetPart_vals();
      if (this_present_part_vals || that_present_part_vals) {
        if (!(this_present_part_vals && that_present_part_vals))
          return false;
        if (!this.part_vals.equals(that.part_vals))
          return false;
      }

      boolean this_present_deleteData = true;
      boolean that_present_deleteData = true;
      if (this_present_deleteData || that_present_deleteData) {
        if (!(this_present_deleteData && that_present_deleteData))
          return false;
        if (this.deleteData != that.deleteData)
          return false;
      }

      boolean this_present_environment_context = true && this.isSetEnvironment_context();
      boolean that_present_environment_context = true && that.isSetEnvironment_context();
      if (this_present_environment_context || that_present_environment_context) {
        if (!(this_present_environment_context && that_present_environment_context))
          return false;
        if (!this.environment_context.equals(that.environment_context))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetPart_vals()) ? 131071 : 524287);
      if (isSetPart_vals())
        hashCode = hashCode * 8191 + part_vals.hashCode();

      hashCode = hashCode * 8191 + ((deleteData) ? 131071 : 524287);

      hashCode = hashCode * 8191 + ((isSetEnvironment_context()) ? 131071 : 524287);
      if (isSetEnvironment_context())
        hashCode = hashCode * 8191 + environment_context.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(drop_partition_with_environment_context_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetPart_vals(), other.isSetPart_vals());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPart_vals()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.part_vals, other.part_vals);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetDeleteData(), other.isSetDeleteData());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDeleteData()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.deleteData, other.deleteData);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetEnvironment_context(), other.isSetEnvironment_context());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEnvironment_context()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.environment_context, other.environment_context);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_partition_with_environment_context_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("part_vals:");
      if (this.part_vals == null) {
        sb.append("null");
      } else {
        sb.append(this.part_vals);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("deleteData:");
      sb.append(this.deleteData);
      first = false;
      if (!first) sb.append(", ");
      sb.append("environment_context:");
      if (this.environment_context == null) {
        sb.append("null");
      } else {
        sb.append(this.environment_context);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (environment_context != null) {
        environment_context.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_partition_with_environment_context_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_partition_with_environment_context_argsStandardScheme getScheme() {
        return new drop_partition_with_environment_context_argsStandardScheme();
      }
    }

    private static class drop_partition_with_environment_context_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_partition_with_environment_context_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_partition_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // PART_VALS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1146 = iprot.readListBegin();
                  struct.part_vals = new java.util.ArrayList<java.lang.String>(_list1146.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem1147;
                  for (int _i1148 = 0; _i1148 < _list1146.size; ++_i1148)
                  {
                    _elem1147 = iprot.readString();
                    struct.part_vals.add(_elem1147);
                  }
                  iprot.readListEnd();
                }
                struct.setPart_valsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // DELETE_DATA
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.deleteData = iprot.readBool();
                struct.setDeleteDataIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // ENVIRONMENT_CONTEXT
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.environment_context = new EnvironmentContext();
                struct.environment_context.read(iprot);
                struct.setEnvironment_contextIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_partition_with_environment_context_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        if (struct.part_vals != null) {
          oprot.writeFieldBegin(PART_VALS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.part_vals.size()));
            for (java.lang.String _iter1149 : struct.part_vals)
            {
              oprot.writeString(_iter1149);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(DELETE_DATA_FIELD_DESC);
        oprot.writeBool(struct.deleteData);
        oprot.writeFieldEnd();
        if (struct.environment_context != null) {
          oprot.writeFieldBegin(ENVIRONMENT_CONTEXT_FIELD_DESC);
          struct.environment_context.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_partition_with_environment_context_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_partition_with_environment_context_argsTupleScheme getScheme() {
        return new drop_partition_with_environment_context_argsTupleScheme();
      }
    }

    private static class drop_partition_with_environment_context_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_partition_with_environment_context_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_partition_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetPart_vals()) {
          optionals.set(2);
        }
        if (struct.isSetDeleteData()) {
          optionals.set(3);
        }
        if (struct.isSetEnvironment_context()) {
          optionals.set(4);
        }
        oprot.writeBitSet(optionals, 5);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetPart_vals()) {
          {
            oprot.writeI32(struct.part_vals.size());
            for (java.lang.String _iter1150 : struct.part_vals)
            {
              oprot.writeString(_iter1150);
            }
          }
        }
        if (struct.isSetDeleteData()) {
          oprot.writeBool(struct.deleteData);
        }
        if (struct.isSetEnvironment_context()) {
          struct.environment_context.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_partition_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(5);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          {
            org.apache.thrift.protocol.TList _list1151 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.part_vals = new java.util.ArrayList<java.lang.String>(_list1151.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem1152;
            for (int _i1153 = 0; _i1153 < _list1151.size; ++_i1153)
            {
              _elem1152 = iprot.readString();
              struct.part_vals.add(_elem1152);
            }
          }
          struct.setPart_valsIsSet(true);
        }
        if (incoming.get(3)) {
          struct.deleteData = iprot.readBool();
          struct.setDeleteDataIsSet(true);
        }
        if (incoming.get(4)) {
          struct.environment_context = new EnvironmentContext();
          struct.environment_context.read(iprot);
          struct.setEnvironment_contextIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_partition_with_environment_context_result implements org.apache.thrift.TBase<drop_partition_with_environment_context_result, drop_partition_with_environment_context_result._Fields>, java.io.Serializable, Cloneable, Comparable<drop_partition_with_environment_context_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_partition_with_environment_context_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_partition_with_environment_context_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_partition_with_environment_context_resultTupleSchemeFactory();

    private boolean success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_partition_with_environment_context_result.class, metaDataMap);
    }

    public drop_partition_with_environment_context_result() {
    }

    public drop_partition_with_environment_context_result(
      boolean success,
      NoSuchObjectException o1,
      MetaException o2)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_partition_with_environment_context_result(drop_partition_with_environment_context_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public drop_partition_with_environment_context_result deepCopy() {
      return new drop_partition_with_environment_context_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = false;
      this.o1 = null;
      this.o2 = null;
    }

    public boolean isSuccess() {
      return this.success;
    }

    public void setSuccess(boolean success) {
      this.success = success;
      setSuccessIsSet(true);
    }

    public void unsetSuccess() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.lang.Boolean)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return isSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_partition_with_environment_context_result)
        return this.equals((drop_partition_with_environment_context_result)that);
      return false;
    }

    public boolean equals(drop_partition_with_environment_context_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(drop_partition_with_environment_context_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_partition_with_environment_context_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_partition_with_environment_context_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_partition_with_environment_context_resultStandardScheme getScheme() {
        return new drop_partition_with_environment_context_resultStandardScheme();
      }
    }

    private static class drop_partition_with_environment_context_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_partition_with_environment_context_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_partition_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.success = iprot.readBool();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_partition_with_environment_context_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeBool(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_partition_with_environment_context_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_partition_with_environment_context_resultTupleScheme getScheme() {
        return new drop_partition_with_environment_context_resultTupleScheme();
      }
    }

    private static class drop_partition_with_environment_context_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_partition_with_environment_context_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_partition_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          oprot.writeBool(struct.success);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_partition_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = iprot.readBool();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_partition_by_name_args implements org.apache.thrift.TBase<drop_partition_by_name_args, drop_partition_by_name_args._Fields>, java.io.Serializable, Cloneable, Comparable<drop_partition_by_name_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_partition_by_name_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField PART_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("part_name", org.apache.thrift.protocol.TType.STRING, (short)3);
    private static final org.apache.thrift.protocol.TField DELETE_DATA_FIELD_DESC = new org.apache.thrift.protocol.TField("deleteData", org.apache.thrift.protocol.TType.BOOL, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_partition_by_name_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_partition_by_name_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String part_name; // required
    private boolean deleteData; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TBL_NAME((short)2, "tbl_name"),
      PART_NAME((short)3, "part_name"),
      DELETE_DATA((short)4, "deleteData");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // PART_NAME
            return PART_NAME;
          case 4: // DELETE_DATA
            return DELETE_DATA;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __DELETEDATA_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PART_NAME, new org.apache.thrift.meta_data.FieldMetaData("part_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.DELETE_DATA, new org.apache.thrift.meta_data.FieldMetaData("deleteData", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_partition_by_name_args.class, metaDataMap);
    }

    public drop_partition_by_name_args() {
    }

    public drop_partition_by_name_args(
      java.lang.String db_name,
      java.lang.String tbl_name,
      java.lang.String part_name,
      boolean deleteData)
    {
      this();
      this.db_name = db_name;
      this.tbl_name = tbl_name;
      this.part_name = part_name;
      this.deleteData = deleteData;
      setDeleteDataIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_partition_by_name_args(drop_partition_by_name_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      if (other.isSetPart_name()) {
        this.part_name = other.part_name;
      }
      this.deleteData = other.deleteData;
    }

    public drop_partition_by_name_args deepCopy() {
      return new drop_partition_by_name_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.tbl_name = null;
      this.part_name = null;
      setDeleteDataIsSet(false);
      this.deleteData = false;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getPart_name() {
      return this.part_name;
    }

    public void setPart_name(@org.apache.thrift.annotation.Nullable java.lang.String part_name) {
      this.part_name = part_name;
    }

    public void unsetPart_name() {
      this.part_name = null;
    }

    /** Returns true if field part_name is set (has been assigned a value) and false otherwise */
    public boolean isSetPart_name() {
      return this.part_name != null;
    }

    public void setPart_nameIsSet(boolean value) {
      if (!value) {
        this.part_name = null;
      }
    }

    public boolean isDeleteData() {
      return this.deleteData;
    }

    public void setDeleteData(boolean deleteData) {
      this.deleteData = deleteData;
      setDeleteDataIsSet(true);
    }

    public void unsetDeleteData() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __DELETEDATA_ISSET_ID);
    }

    /** Returns true if field deleteData is set (has been assigned a value) and false otherwise */
    public boolean isSetDeleteData() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __DELETEDATA_ISSET_ID);
    }

    public void setDeleteDataIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __DELETEDATA_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case PART_NAME:
        if (value == null) {
          unsetPart_name();
        } else {
          setPart_name((java.lang.String)value);
        }
        break;

      case DELETE_DATA:
        if (value == null) {
          unsetDeleteData();
        } else {
          setDeleteData((java.lang.Boolean)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TBL_NAME:
        return getTbl_name();

      case PART_NAME:
        return getPart_name();

      case DELETE_DATA:
        return isDeleteData();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TBL_NAME:
        return isSetTbl_name();
      case PART_NAME:
        return isSetPart_name();
      case DELETE_DATA:
        return isSetDeleteData();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_partition_by_name_args)
        return this.equals((drop_partition_by_name_args)that);
      return false;
    }

    public boolean equals(drop_partition_by_name_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_part_name = true && this.isSetPart_name();
      boolean that_present_part_name = true && that.isSetPart_name();
      if (this_present_part_name || that_present_part_name) {
        if (!(this_present_part_name && that_present_part_name))
          return false;
        if (!this.part_name.equals(that.part_name))
          return false;
      }

      boolean this_present_deleteData = true;
      boolean that_present_deleteData = true;
      if (this_present_deleteData || that_present_deleteData) {
        if (!(this_present_deleteData && that_present_deleteData))
          return false;
        if (this.deleteData != that.deleteData)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetPart_name()) ? 131071 : 524287);
      if (isSetPart_name())
        hashCode = hashCode * 8191 + part_name.hashCode();

      hashCode = hashCode * 8191 + ((deleteData) ? 131071 : 524287);

      return hashCode;
    }

    @Override
    public int compareTo(drop_partition_by_name_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetPart_name(), other.isSetPart_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPart_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.part_name, other.part_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetDeleteData(), other.isSetDeleteData());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDeleteData()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.deleteData, other.deleteData);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_partition_by_name_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("part_name:");
      if (this.part_name == null) {
        sb.append("null");
      } else {
        sb.append(this.part_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("deleteData:");
      sb.append(this.deleteData);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_partition_by_name_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_partition_by_name_argsStandardScheme getScheme() {
        return new drop_partition_by_name_argsStandardScheme();
      }
    }

    private static class drop_partition_by_name_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_partition_by_name_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_partition_by_name_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // PART_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.part_name = iprot.readString();
                struct.setPart_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // DELETE_DATA
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.deleteData = iprot.readBool();
                struct.setDeleteDataIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_partition_by_name_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        if (struct.part_name != null) {
          oprot.writeFieldBegin(PART_NAME_FIELD_DESC);
          oprot.writeString(struct.part_name);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(DELETE_DATA_FIELD_DESC);
        oprot.writeBool(struct.deleteData);
        oprot.writeFieldEnd();
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_partition_by_name_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_partition_by_name_argsTupleScheme getScheme() {
        return new drop_partition_by_name_argsTupleScheme();
      }
    }

    private static class drop_partition_by_name_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_partition_by_name_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_partition_by_name_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetPart_name()) {
          optionals.set(2);
        }
        if (struct.isSetDeleteData()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetPart_name()) {
          oprot.writeString(struct.part_name);
        }
        if (struct.isSetDeleteData()) {
          oprot.writeBool(struct.deleteData);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_partition_by_name_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.part_name = iprot.readString();
          struct.setPart_nameIsSet(true);
        }
        if (incoming.get(3)) {
          struct.deleteData = iprot.readBool();
          struct.setDeleteDataIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_partition_by_name_result implements org.apache.thrift.TBase<drop_partition_by_name_result, drop_partition_by_name_result._Fields>, java.io.Serializable, Cloneable, Comparable<drop_partition_by_name_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_partition_by_name_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_partition_by_name_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_partition_by_name_resultTupleSchemeFactory();

    private boolean success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_partition_by_name_result.class, metaDataMap);
    }

    public drop_partition_by_name_result() {
    }

    public drop_partition_by_name_result(
      boolean success,
      NoSuchObjectException o1,
      MetaException o2)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_partition_by_name_result(drop_partition_by_name_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public drop_partition_by_name_result deepCopy() {
      return new drop_partition_by_name_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = false;
      this.o1 = null;
      this.o2 = null;
    }

    public boolean isSuccess() {
      return this.success;
    }

    public void setSuccess(boolean success) {
      this.success = success;
      setSuccessIsSet(true);
    }

    public void unsetSuccess() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.lang.Boolean)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return isSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_partition_by_name_result)
        return this.equals((drop_partition_by_name_result)that);
      return false;
    }

    public boolean equals(drop_partition_by_name_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(drop_partition_by_name_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_partition_by_name_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_partition_by_name_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_partition_by_name_resultStandardScheme getScheme() {
        return new drop_partition_by_name_resultStandardScheme();
      }
    }

    private static class drop_partition_by_name_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_partition_by_name_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_partition_by_name_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.success = iprot.readBool();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_partition_by_name_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeBool(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_partition_by_name_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_partition_by_name_resultTupleScheme getScheme() {
        return new drop_partition_by_name_resultTupleScheme();
      }
    }

    private static class drop_partition_by_name_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_partition_by_name_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_partition_by_name_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          oprot.writeBool(struct.success);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_partition_by_name_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = iprot.readBool();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_partition_by_name_with_environment_context_args implements org.apache.thrift.TBase<drop_partition_by_name_with_environment_context_args, drop_partition_by_name_with_environment_context_args._Fields>, java.io.Serializable, Cloneable, Comparable<drop_partition_by_name_with_environment_context_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_partition_by_name_with_environment_context_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField PART_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("part_name", org.apache.thrift.protocol.TType.STRING, (short)3);
    private static final org.apache.thrift.protocol.TField DELETE_DATA_FIELD_DESC = new org.apache.thrift.protocol.TField("deleteData", org.apache.thrift.protocol.TType.BOOL, (short)4);
    private static final org.apache.thrift.protocol.TField ENVIRONMENT_CONTEXT_FIELD_DESC = new org.apache.thrift.protocol.TField("environment_context", org.apache.thrift.protocol.TType.STRUCT, (short)5);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_partition_by_name_with_environment_context_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_partition_by_name_with_environment_context_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String part_name; // required
    private boolean deleteData; // required
    private @org.apache.thrift.annotation.Nullable EnvironmentContext environment_context; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TBL_NAME((short)2, "tbl_name"),
      PART_NAME((short)3, "part_name"),
      DELETE_DATA((short)4, "deleteData"),
      ENVIRONMENT_CONTEXT((short)5, "environment_context");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // PART_NAME
            return PART_NAME;
          case 4: // DELETE_DATA
            return DELETE_DATA;
          case 5: // ENVIRONMENT_CONTEXT
            return ENVIRONMENT_CONTEXT;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __DELETEDATA_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PART_NAME, new org.apache.thrift.meta_data.FieldMetaData("part_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.DELETE_DATA, new org.apache.thrift.meta_data.FieldMetaData("deleteData", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.ENVIRONMENT_CONTEXT, new org.apache.thrift.meta_data.FieldMetaData("environment_context", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, EnvironmentContext.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_partition_by_name_with_environment_context_args.class, metaDataMap);
    }

    public drop_partition_by_name_with_environment_context_args() {
    }

    public drop_partition_by_name_with_environment_context_args(
      java.lang.String db_name,
      java.lang.String tbl_name,
      java.lang.String part_name,
      boolean deleteData,
      EnvironmentContext environment_context)
    {
      this();
      this.db_name = db_name;
      this.tbl_name = tbl_name;
      this.part_name = part_name;
      this.deleteData = deleteData;
      setDeleteDataIsSet(true);
      this.environment_context = environment_context;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_partition_by_name_with_environment_context_args(drop_partition_by_name_with_environment_context_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      if (other.isSetPart_name()) {
        this.part_name = other.part_name;
      }
      this.deleteData = other.deleteData;
      if (other.isSetEnvironment_context()) {
        this.environment_context = new EnvironmentContext(other.environment_context);
      }
    }

    public drop_partition_by_name_with_environment_context_args deepCopy() {
      return new drop_partition_by_name_with_environment_context_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.tbl_name = null;
      this.part_name = null;
      setDeleteDataIsSet(false);
      this.deleteData = false;
      this.environment_context = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getPart_name() {
      return this.part_name;
    }

    public void setPart_name(@org.apache.thrift.annotation.Nullable java.lang.String part_name) {
      this.part_name = part_name;
    }

    public void unsetPart_name() {
      this.part_name = null;
    }

    /** Returns true if field part_name is set (has been assigned a value) and false otherwise */
    public boolean isSetPart_name() {
      return this.part_name != null;
    }

    public void setPart_nameIsSet(boolean value) {
      if (!value) {
        this.part_name = null;
      }
    }

    public boolean isDeleteData() {
      return this.deleteData;
    }

    public void setDeleteData(boolean deleteData) {
      this.deleteData = deleteData;
      setDeleteDataIsSet(true);
    }

    public void unsetDeleteData() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __DELETEDATA_ISSET_ID);
    }

    /** Returns true if field deleteData is set (has been assigned a value) and false otherwise */
    public boolean isSetDeleteData() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __DELETEDATA_ISSET_ID);
    }

    public void setDeleteDataIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __DELETEDATA_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public EnvironmentContext getEnvironment_context() {
      return this.environment_context;
    }

    public void setEnvironment_context(@org.apache.thrift.annotation.Nullable EnvironmentContext environment_context) {
      this.environment_context = environment_context;
    }

    public void unsetEnvironment_context() {
      this.environment_context = null;
    }

    /** Returns true if field environment_context is set (has been assigned a value) and false otherwise */
    public boolean isSetEnvironment_context() {
      return this.environment_context != null;
    }

    public void setEnvironment_contextIsSet(boolean value) {
      if (!value) {
        this.environment_context = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case PART_NAME:
        if (value == null) {
          unsetPart_name();
        } else {
          setPart_name((java.lang.String)value);
        }
        break;

      case DELETE_DATA:
        if (value == null) {
          unsetDeleteData();
        } else {
          setDeleteData((java.lang.Boolean)value);
        }
        break;

      case ENVIRONMENT_CONTEXT:
        if (value == null) {
          unsetEnvironment_context();
        } else {
          setEnvironment_context((EnvironmentContext)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TBL_NAME:
        return getTbl_name();

      case PART_NAME:
        return getPart_name();

      case DELETE_DATA:
        return isDeleteData();

      case ENVIRONMENT_CONTEXT:
        return getEnvironment_context();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TBL_NAME:
        return isSetTbl_name();
      case PART_NAME:
        return isSetPart_name();
      case DELETE_DATA:
        return isSetDeleteData();
      case ENVIRONMENT_CONTEXT:
        return isSetEnvironment_context();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_partition_by_name_with_environment_context_args)
        return this.equals((drop_partition_by_name_with_environment_context_args)that);
      return false;
    }

    public boolean equals(drop_partition_by_name_with_environment_context_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_part_name = true && this.isSetPart_name();
      boolean that_present_part_name = true && that.isSetPart_name();
      if (this_present_part_name || that_present_part_name) {
        if (!(this_present_part_name && that_present_part_name))
          return false;
        if (!this.part_name.equals(that.part_name))
          return false;
      }

      boolean this_present_deleteData = true;
      boolean that_present_deleteData = true;
      if (this_present_deleteData || that_present_deleteData) {
        if (!(this_present_deleteData && that_present_deleteData))
          return false;
        if (this.deleteData != that.deleteData)
          return false;
      }

      boolean this_present_environment_context = true && this.isSetEnvironment_context();
      boolean that_present_environment_context = true && that.isSetEnvironment_context();
      if (this_present_environment_context || that_present_environment_context) {
        if (!(this_present_environment_context && that_present_environment_context))
          return false;
        if (!this.environment_context.equals(that.environment_context))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetPart_name()) ? 131071 : 524287);
      if (isSetPart_name())
        hashCode = hashCode * 8191 + part_name.hashCode();

      hashCode = hashCode * 8191 + ((deleteData) ? 131071 : 524287);

      hashCode = hashCode * 8191 + ((isSetEnvironment_context()) ? 131071 : 524287);
      if (isSetEnvironment_context())
        hashCode = hashCode * 8191 + environment_context.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(drop_partition_by_name_with_environment_context_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetPart_name(), other.isSetPart_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPart_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.part_name, other.part_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetDeleteData(), other.isSetDeleteData());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDeleteData()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.deleteData, other.deleteData);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetEnvironment_context(), other.isSetEnvironment_context());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEnvironment_context()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.environment_context, other.environment_context);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_partition_by_name_with_environment_context_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("part_name:");
      if (this.part_name == null) {
        sb.append("null");
      } else {
        sb.append(this.part_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("deleteData:");
      sb.append(this.deleteData);
      first = false;
      if (!first) sb.append(", ");
      sb.append("environment_context:");
      if (this.environment_context == null) {
        sb.append("null");
      } else {
        sb.append(this.environment_context);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (environment_context != null) {
        environment_context.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_partition_by_name_with_environment_context_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_partition_by_name_with_environment_context_argsStandardScheme getScheme() {
        return new drop_partition_by_name_with_environment_context_argsStandardScheme();
      }
    }

    private static class drop_partition_by_name_with_environment_context_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_partition_by_name_with_environment_context_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_partition_by_name_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // PART_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.part_name = iprot.readString();
                struct.setPart_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // DELETE_DATA
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.deleteData = iprot.readBool();
                struct.setDeleteDataIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // ENVIRONMENT_CONTEXT
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.environment_context = new EnvironmentContext();
                struct.environment_context.read(iprot);
                struct.setEnvironment_contextIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_partition_by_name_with_environment_context_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        if (struct.part_name != null) {
          oprot.writeFieldBegin(PART_NAME_FIELD_DESC);
          oprot.writeString(struct.part_name);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(DELETE_DATA_FIELD_DESC);
        oprot.writeBool(struct.deleteData);
        oprot.writeFieldEnd();
        if (struct.environment_context != null) {
          oprot.writeFieldBegin(ENVIRONMENT_CONTEXT_FIELD_DESC);
          struct.environment_context.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_partition_by_name_with_environment_context_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_partition_by_name_with_environment_context_argsTupleScheme getScheme() {
        return new drop_partition_by_name_with_environment_context_argsTupleScheme();
      }
    }

    private static class drop_partition_by_name_with_environment_context_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_partition_by_name_with_environment_context_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_partition_by_name_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetPart_name()) {
          optionals.set(2);
        }
        if (struct.isSetDeleteData()) {
          optionals.set(3);
        }
        if (struct.isSetEnvironment_context()) {
          optionals.set(4);
        }
        oprot.writeBitSet(optionals, 5);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetPart_name()) {
          oprot.writeString(struct.part_name);
        }
        if (struct.isSetDeleteData()) {
          oprot.writeBool(struct.deleteData);
        }
        if (struct.isSetEnvironment_context()) {
          struct.environment_context.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_partition_by_name_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(5);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.part_name = iprot.readString();
          struct.setPart_nameIsSet(true);
        }
        if (incoming.get(3)) {
          struct.deleteData = iprot.readBool();
          struct.setDeleteDataIsSet(true);
        }
        if (incoming.get(4)) {
          struct.environment_context = new EnvironmentContext();
          struct.environment_context.read(iprot);
          struct.setEnvironment_contextIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_partition_by_name_with_environment_context_result implements org.apache.thrift.TBase<drop_partition_by_name_with_environment_context_result, drop_partition_by_name_with_environment_context_result._Fields>, java.io.Serializable, Cloneable, Comparable<drop_partition_by_name_with_environment_context_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_partition_by_name_with_environment_context_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_partition_by_name_with_environment_context_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_partition_by_name_with_environment_context_resultTupleSchemeFactory();

    private boolean success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_partition_by_name_with_environment_context_result.class, metaDataMap);
    }

    public drop_partition_by_name_with_environment_context_result() {
    }

    public drop_partition_by_name_with_environment_context_result(
      boolean success,
      NoSuchObjectException o1,
      MetaException o2)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_partition_by_name_with_environment_context_result(drop_partition_by_name_with_environment_context_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public drop_partition_by_name_with_environment_context_result deepCopy() {
      return new drop_partition_by_name_with_environment_context_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = false;
      this.o1 = null;
      this.o2 = null;
    }

    public boolean isSuccess() {
      return this.success;
    }

    public void setSuccess(boolean success) {
      this.success = success;
      setSuccessIsSet(true);
    }

    public void unsetSuccess() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.lang.Boolean)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return isSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_partition_by_name_with_environment_context_result)
        return this.equals((drop_partition_by_name_with_environment_context_result)that);
      return false;
    }

    public boolean equals(drop_partition_by_name_with_environment_context_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(drop_partition_by_name_with_environment_context_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_partition_by_name_with_environment_context_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_partition_by_name_with_environment_context_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_partition_by_name_with_environment_context_resultStandardScheme getScheme() {
        return new drop_partition_by_name_with_environment_context_resultStandardScheme();
      }
    }

    private static class drop_partition_by_name_with_environment_context_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_partition_by_name_with_environment_context_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_partition_by_name_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.success = iprot.readBool();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_partition_by_name_with_environment_context_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeBool(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_partition_by_name_with_environment_context_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_partition_by_name_with_environment_context_resultTupleScheme getScheme() {
        return new drop_partition_by_name_with_environment_context_resultTupleScheme();
      }
    }

    private static class drop_partition_by_name_with_environment_context_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_partition_by_name_with_environment_context_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_partition_by_name_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          oprot.writeBool(struct.success);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_partition_by_name_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = iprot.readBool();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_partitions_req_args implements org.apache.thrift.TBase<drop_partitions_req_args, drop_partitions_req_args._Fields>, java.io.Serializable, Cloneable, Comparable<drop_partitions_req_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_partitions_req_args");

    private static final org.apache.thrift.protocol.TField REQ_FIELD_DESC = new org.apache.thrift.protocol.TField("req", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_partitions_req_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_partitions_req_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable DropPartitionsRequest req; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQ((short)1, "req");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQ
            return REQ;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQ, new org.apache.thrift.meta_data.FieldMetaData("req", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, DropPartitionsRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_partitions_req_args.class, metaDataMap);
    }

    public drop_partitions_req_args() {
    }

    public drop_partitions_req_args(
      DropPartitionsRequest req)
    {
      this();
      this.req = req;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_partitions_req_args(drop_partitions_req_args other) {
      if (other.isSetReq()) {
        this.req = new DropPartitionsRequest(other.req);
      }
    }

    public drop_partitions_req_args deepCopy() {
      return new drop_partitions_req_args(this);
    }

    @Override
    public void clear() {
      this.req = null;
    }

    @org.apache.thrift.annotation.Nullable
    public DropPartitionsRequest getReq() {
      return this.req;
    }

    public void setReq(@org.apache.thrift.annotation.Nullable DropPartitionsRequest req) {
      this.req = req;
    }

    public void unsetReq() {
      this.req = null;
    }

    /** Returns true if field req is set (has been assigned a value) and false otherwise */
    public boolean isSetReq() {
      return this.req != null;
    }

    public void setReqIsSet(boolean value) {
      if (!value) {
        this.req = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQ:
        if (value == null) {
          unsetReq();
        } else {
          setReq((DropPartitionsRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQ:
        return getReq();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQ:
        return isSetReq();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_partitions_req_args)
        return this.equals((drop_partitions_req_args)that);
      return false;
    }

    public boolean equals(drop_partitions_req_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_req = true && this.isSetReq();
      boolean that_present_req = true && that.isSetReq();
      if (this_present_req || that_present_req) {
        if (!(this_present_req && that_present_req))
          return false;
        if (!this.req.equals(that.req))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetReq()) ? 131071 : 524287);
      if (isSetReq())
        hashCode = hashCode * 8191 + req.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(drop_partitions_req_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetReq(), other.isSetReq());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetReq()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.req, other.req);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_partitions_req_args(");
      boolean first = true;

      sb.append("req:");
      if (this.req == null) {
        sb.append("null");
      } else {
        sb.append(this.req);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (req != null) {
        req.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_partitions_req_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_partitions_req_argsStandardScheme getScheme() {
        return new drop_partitions_req_argsStandardScheme();
      }
    }

    private static class drop_partitions_req_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_partitions_req_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_partitions_req_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQ
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.req = new DropPartitionsRequest();
                struct.req.read(iprot);
                struct.setReqIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_partitions_req_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.req != null) {
          oprot.writeFieldBegin(REQ_FIELD_DESC);
          struct.req.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_partitions_req_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_partitions_req_argsTupleScheme getScheme() {
        return new drop_partitions_req_argsTupleScheme();
      }
    }

    private static class drop_partitions_req_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_partitions_req_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_partitions_req_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetReq()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetReq()) {
          struct.req.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_partitions_req_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.req = new DropPartitionsRequest();
          struct.req.read(iprot);
          struct.setReqIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_partitions_req_result implements org.apache.thrift.TBase<drop_partitions_req_result, drop_partitions_req_result._Fields>, java.io.Serializable, Cloneable, Comparable<drop_partitions_req_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_partitions_req_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_partitions_req_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_partitions_req_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable DropPartitionsResult success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, DropPartitionsResult.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_partitions_req_result.class, metaDataMap);
    }

    public drop_partitions_req_result() {
    }

    public drop_partitions_req_result(
      DropPartitionsResult success,
      NoSuchObjectException o1,
      MetaException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_partitions_req_result(drop_partitions_req_result other) {
      if (other.isSetSuccess()) {
        this.success = new DropPartitionsResult(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public drop_partitions_req_result deepCopy() {
      return new drop_partitions_req_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public DropPartitionsResult getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable DropPartitionsResult success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((DropPartitionsResult)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_partitions_req_result)
        return this.equals((drop_partitions_req_result)that);
      return false;
    }

    public boolean equals(drop_partitions_req_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(drop_partitions_req_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_partitions_req_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_partitions_req_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_partitions_req_resultStandardScheme getScheme() {
        return new drop_partitions_req_resultStandardScheme();
      }
    }

    private static class drop_partitions_req_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_partitions_req_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_partitions_req_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new DropPartitionsResult();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_partitions_req_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_partitions_req_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_partitions_req_resultTupleScheme getScheme() {
        return new drop_partitions_req_resultTupleScheme();
      }
    }

    private static class drop_partitions_req_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_partitions_req_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_partitions_req_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_partitions_req_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = new DropPartitionsResult();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition_args implements org.apache.thrift.TBase<get_partition_args, get_partition_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_partition_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partition_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField PART_VALS_FIELD_DESC = new org.apache.thrift.protocol.TField("part_vals", org.apache.thrift.protocol.TType.LIST, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_partition_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_partition_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> part_vals; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TBL_NAME((short)2, "tbl_name"),
      PART_VALS((short)3, "part_vals");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // PART_VALS
            return PART_VALS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PART_VALS, new org.apache.thrift.meta_data.FieldMetaData("part_vals", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partition_args.class, metaDataMap);
    }

    public get_partition_args() {
    }

    public get_partition_args(
      java.lang.String db_name,
      java.lang.String tbl_name,
      java.util.List<java.lang.String> part_vals)
    {
      this();
      this.db_name = db_name;
      this.tbl_name = tbl_name;
      this.part_vals = part_vals;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_partition_args(get_partition_args other) {
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      if (other.isSetPart_vals()) {
        java.util.List<java.lang.String> __this__part_vals = new java.util.ArrayList<java.lang.String>(other.part_vals);
        this.part_vals = __this__part_vals;
      }
    }

    public get_partition_args deepCopy() {
      return new get_partition_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.tbl_name = null;
      this.part_vals = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    public int getPart_valsSize() {
      return (this.part_vals == null) ? 0 : this.part_vals.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getPart_valsIterator() {
      return (this.part_vals == null) ? null : this.part_vals.iterator();
    }

    public void addToPart_vals(java.lang.String elem) {
      if (this.part_vals == null) {
        this.part_vals = new java.util.ArrayList<java.lang.String>();
      }
      this.part_vals.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getPart_vals() {
      return this.part_vals;
    }

    public void setPart_vals(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> part_vals) {
      this.part_vals = part_vals;
    }

    public void unsetPart_vals() {
      this.part_vals = null;
    }

    /** Returns true if field part_vals is set (has been assigned a value) and false otherwise */
    public boolean isSetPart_vals() {
      return this.part_vals != null;
    }

    public void setPart_valsIsSet(boolean value) {
      if (!value) {
        this.part_vals = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case PART_VALS:
        if (value == null) {
          unsetPart_vals();
        } else {
          setPart_vals((java.util.List<java.lang.String>)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TBL_NAME:
        return getTbl_name();

      case PART_VALS:
        return getPart_vals();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TBL_NAME:
        return isSetTbl_name();
      case PART_VALS:
        return isSetPart_vals();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_partition_args)
        return this.equals((get_partition_args)that);
      return false;
    }

    public boolean equals(get_partition_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_part_vals = true && this.isSetPart_vals();
      boolean that_present_part_vals = true && that.isSetPart_vals();
      if (this_present_part_vals || that_present_part_vals) {
        if (!(this_present_part_vals && that_present_part_vals))
          return false;
        if (!this.part_vals.equals(that.part_vals))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetPart_vals()) ? 131071 : 524287);
      if (isSetPart_vals())
        hashCode = hashCode * 8191 + part_vals.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_partition_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetPart_vals(), other.isSetPart_vals());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPart_vals()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.part_vals, other.part_vals);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_partition_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("part_vals:");
      if (this.part_vals == null) {
        sb.append("null");
      } else {
        sb.append(this.part_vals);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_partition_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partition_argsStandardScheme getScheme() {
        return new get_partition_argsStandardScheme();
      }
    }

    private static class get_partition_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_partition_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_partition_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // PART_VALS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1154 = iprot.readListBegin();
                  struct.part_vals = new java.util.ArrayList<java.lang.String>(_list1154.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem1155;
                  for (int _i1156 = 0; _i1156 < _list1154.size; ++_i1156)
                  {
                    _elem1155 = iprot.readString();
                    struct.part_vals.add(_elem1155);
                  }
                  iprot.readListEnd();
                }
                struct.setPart_valsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_partition_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        if (struct.part_vals != null) {
          oprot.writeFieldBegin(PART_VALS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.part_vals.size()));
            for (java.lang.String _iter1157 : struct.part_vals)
            {
              oprot.writeString(_iter1157);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_partition_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partition_argsTupleScheme getScheme() {
        return new get_partition_argsTupleScheme();
      }
    }

    private static class get_partition_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_partition_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_partition_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetPart_vals()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetPart_vals()) {
          {
            oprot.writeI32(struct.part_vals.size());
            for (java.lang.String _iter1158 : struct.part_vals)
            {
              oprot.writeString(_iter1158);
            }
          }
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_partition_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          {
            org.apache.thrift.protocol.TList _list1159 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.part_vals = new java.util.ArrayList<java.lang.String>(_list1159.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem1160;
            for (int _i1161 = 0; _i1161 < _list1159.size; ++_i1161)
            {
              _elem1160 = iprot.readString();
              struct.part_vals.add(_elem1160);
            }
          }
          struct.setPart_valsIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition_result implements org.apache.thrift.TBase<get_partition_result, get_partition_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_partition_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partition_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_partition_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_partition_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable Partition success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Partition.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partition_result.class, metaDataMap);
    }

    public get_partition_result() {
    }

    public get_partition_result(
      Partition success,
      MetaException o1,
      NoSuchObjectException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_partition_result(get_partition_result other) {
      if (other.isSetSuccess()) {
        this.success = new Partition(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchObjectException(other.o2);
      }
    }

    public get_partition_result deepCopy() {
      return new get_partition_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public Partition getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable Partition success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Partition)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchObjectException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_partition_result)
        return this.equals((get_partition_result)that);
      return false;
    }

    public boolean equals(get_partition_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_partition_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_partition_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_partition_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partition_resultStandardScheme getScheme() {
        return new get_partition_resultStandardScheme();
      }
    }

    private static class get_partition_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_partition_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_partition_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new Partition();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_partition_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_partition_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partition_resultTupleScheme getScheme() {
        return new get_partition_resultTupleScheme();
      }
    }

    private static class get_partition_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_partition_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_partition_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_partition_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = new Partition();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new NoSuchObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class exchange_partition_args implements org.apache.thrift.TBase<exchange_partition_args, exchange_partition_args._Fields>, java.io.Serializable, Cloneable, Comparable<exchange_partition_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("exchange_partition_args");

    private static final org.apache.thrift.protocol.TField PARTITION_SPECS_FIELD_DESC = new org.apache.thrift.protocol.TField("partitionSpecs", org.apache.thrift.protocol.TType.MAP, (short)1);
    private static final org.apache.thrift.protocol.TField SOURCE_DB_FIELD_DESC = new org.apache.thrift.protocol.TField("source_db", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField SOURCE_TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("source_table_name", org.apache.thrift.protocol.TType.STRING, (short)3);
    private static final org.apache.thrift.protocol.TField DEST_DB_FIELD_DESC = new org.apache.thrift.protocol.TField("dest_db", org.apache.thrift.protocol.TType.STRING, (short)4);
    private static final org.apache.thrift.protocol.TField DEST_TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("dest_table_name", org.apache.thrift.protocol.TType.STRING, (short)5);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new exchange_partition_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new exchange_partition_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.lang.String> partitionSpecs; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String source_db; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String source_table_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String dest_db; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String dest_table_name; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      PARTITION_SPECS((short)1, "partitionSpecs"),
      SOURCE_DB((short)2, "source_db"),
      SOURCE_TABLE_NAME((short)3, "source_table_name"),
      DEST_DB((short)4, "dest_db"),
      DEST_TABLE_NAME((short)5, "dest_table_name");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // PARTITION_SPECS
            return PARTITION_SPECS;
          case 2: // SOURCE_DB
            return SOURCE_DB;
          case 3: // SOURCE_TABLE_NAME
            return SOURCE_TABLE_NAME;
          case 4: // DEST_DB
            return DEST_DB;
          case 5: // DEST_TABLE_NAME
            return DEST_TABLE_NAME;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.PARTITION_SPECS, new org.apache.thrift.meta_data.FieldMetaData("partitionSpecs", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      tmpMap.put(_Fields.SOURCE_DB, new org.apache.thrift.meta_data.FieldMetaData("source_db", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.SOURCE_TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("source_table_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.DEST_DB, new org.apache.thrift.meta_data.FieldMetaData("dest_db", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.DEST_TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("dest_table_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(exchange_partition_args.class, metaDataMap);
    }

    public exchange_partition_args() {
    }

    public exchange_partition_args(
      java.util.Map<java.lang.String,java.lang.String> partitionSpecs,
      java.lang.String source_db,
      java.lang.String source_table_name,
      java.lang.String dest_db,
      java.lang.String dest_table_name)
    {
      this();
      this.partitionSpecs = partitionSpecs;
      this.source_db = source_db;
      this.source_table_name = source_table_name;
      this.dest_db = dest_db;
      this.dest_table_name = dest_table_name;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public exchange_partition_args(exchange_partition_args other) {
      if (other.isSetPartitionSpecs()) {
        java.util.Map<java.lang.String,java.lang.String> __this__partitionSpecs = new java.util.HashMap<java.lang.String,java.lang.String>(other.partitionSpecs);
        this.partitionSpecs = __this__partitionSpecs;
      }
      if (other.isSetSource_db()) {
        this.source_db = other.source_db;
      }
      if (other.isSetSource_table_name()) {
        this.source_table_name = other.source_table_name;
      }
      if (other.isSetDest_db()) {
        this.dest_db = other.dest_db;
      }
      if (other.isSetDest_table_name()) {
        this.dest_table_name = other.dest_table_name;
      }
    }

    public exchange_partition_args deepCopy() {
      return new exchange_partition_args(this);
    }

    @Override
    public void clear() {
      this.partitionSpecs = null;
      this.source_db = null;
      this.source_table_name = null;
      this.dest_db = null;
      this.dest_table_name = null;
    }

    public int getPartitionSpecsSize() {
      return (this.partitionSpecs == null) ? 0 : this.partitionSpecs.size();
    }

    public void putToPartitionSpecs(java.lang.String key, java.lang.String val) {
      if (this.partitionSpecs == null) {
        this.partitionSpecs = new java.util.HashMap<java.lang.String,java.lang.String>();
      }
      this.partitionSpecs.put(key, val);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Map<java.lang.String,java.lang.String> getPartitionSpecs() {
      return this.partitionSpecs;
    }

    public void setPartitionSpecs(@org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.lang.String> partitionSpecs) {
      this.partitionSpecs = partitionSpecs;
    }

    public void unsetPartitionSpecs() {
      this.partitionSpecs = null;
    }

    /** Returns true if field partitionSpecs is set (has been assigned a value) and false otherwise */
    public boolean isSetPartitionSpecs() {
      return this.partitionSpecs != null;
    }

    public void setPartitionSpecsIsSet(boolean value) {
      if (!value) {
        this.partitionSpecs = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getSource_db() {
      return this.source_db;
    }

    public void setSource_db(@org.apache.thrift.annotation.Nullable java.lang.String source_db) {
      this.source_db = source_db;
    }

    public void unsetSource_db() {
      this.source_db = null;
    }

    /** Returns true if field source_db is set (has been assigned a value) and false otherwise */
    public boolean isSetSource_db() {
      return this.source_db != null;
    }

    public void setSource_dbIsSet(boolean value) {
      if (!value) {
        this.source_db = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getSource_table_name() {
      return this.source_table_name;
    }

    public void setSource_table_name(@org.apache.thrift.annotation.Nullable java.lang.String source_table_name) {
      this.source_table_name = source_table_name;
    }

    public void unsetSource_table_name() {
      this.source_table_name = null;
    }

    /** Returns true if field source_table_name is set (has been assigned a value) and false otherwise */
    public boolean isSetSource_table_name() {
      return this.source_table_name != null;
    }

    public void setSource_table_nameIsSet(boolean value) {
      if (!value) {
        this.source_table_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDest_db() {
      return this.dest_db;
    }

    public void setDest_db(@org.apache.thrift.annotation.Nullable java.lang.String dest_db) {
      this.dest_db = dest_db;
    }

    public void unsetDest_db() {
      this.dest_db = null;
    }

    /** Returns true if field dest_db is set (has been assigned a value) and false otherwise */
    public boolean isSetDest_db() {
      return this.dest_db != null;
    }

    public void setDest_dbIsSet(boolean value) {
      if (!value) {
        this.dest_db = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDest_table_name() {
      return this.dest_table_name;
    }

    public void setDest_table_name(@org.apache.thrift.annotation.Nullable java.lang.String dest_table_name) {
      this.dest_table_name = dest_table_name;
    }

    public void unsetDest_table_name() {
      this.dest_table_name = null;
    }

    /** Returns true if field dest_table_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDest_table_name() {
      return this.dest_table_name != null;
    }

    public void setDest_table_nameIsSet(boolean value) {
      if (!value) {
        this.dest_table_name = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case PARTITION_SPECS:
        if (value == null) {
          unsetPartitionSpecs();
        } else {
          setPartitionSpecs((java.util.Map<java.lang.String,java.lang.String>)value);
        }
        break;

      case SOURCE_DB:
        if (value == null) {
          unsetSource_db();
        } else {
          setSource_db((java.lang.String)value);
        }
        break;

      case SOURCE_TABLE_NAME:
        if (value == null) {
          unsetSource_table_name();
        } else {
          setSource_table_name((java.lang.String)value);
        }
        break;

      case DEST_DB:
        if (value == null) {
          unsetDest_db();
        } else {
          setDest_db((java.lang.String)value);
        }
        break;

      case DEST_TABLE_NAME:
        if (value == null) {
          unsetDest_table_name();
        } else {
          setDest_table_name((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case PARTITION_SPECS:
        return getPartitionSpecs();

      case SOURCE_DB:
        return getSource_db();

      case SOURCE_TABLE_NAME:
        return getSource_table_name();

      case DEST_DB:
        return getDest_db();

      case DEST_TABLE_NAME:
        return getDest_table_name();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case PARTITION_SPECS:
        return isSetPartitionSpecs();
      case SOURCE_DB:
        return isSetSource_db();
      case SOURCE_TABLE_NAME:
        return isSetSource_table_name();
      case DEST_DB:
        return isSetDest_db();
      case DEST_TABLE_NAME:
        return isSetDest_table_name();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof exchange_partition_args)
        return this.equals((exchange_partition_args)that);
      return false;
    }

    public boolean equals(exchange_partition_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_partitionSpecs = true && this.isSetPartitionSpecs();
      boolean that_present_partitionSpecs = true && that.isSetPartitionSpecs();
      if (this_present_partitionSpecs || that_present_partitionSpecs) {
        if (!(this_present_partitionSpecs && that_present_partitionSpecs))
          return false;
        if (!this.partitionSpecs.equals(that.partitionSpecs))
          return false;
      }

      boolean this_present_source_db = true && this.isSetSource_db();
      boolean that_present_source_db = true && that.isSetSource_db();
      if (this_present_source_db || that_present_source_db) {
        if (!(this_present_source_db && that_present_source_db))
          return false;
        if (!this.source_db.equals(that.source_db))
          return false;
      }

      boolean this_present_source_table_name = true && this.isSetSource_table_name();
      boolean that_present_source_table_name = true && that.isSetSource_table_name();
      if (this_present_source_table_name || that_present_source_table_name) {
        if (!(this_present_source_table_name && that_present_source_table_name))
          return false;
        if (!this.source_table_name.equals(that.source_table_name))
          return false;
      }

      boolean this_present_dest_db = true && this.isSetDest_db();
      boolean that_present_dest_db = true && that.isSetDest_db();
      if (this_present_dest_db || that_present_dest_db) {
        if (!(this_present_dest_db && that_present_dest_db))
          return false;
        if (!this.dest_db.equals(that.dest_db))
          return false;
      }

      boolean this_present_dest_table_name = true && this.isSetDest_table_name();
      boolean that_present_dest_table_name = true && that.isSetDest_table_name();
      if (this_present_dest_table_name || that_present_dest_table_name) {
        if (!(this_present_dest_table_name && that_present_dest_table_name))
          return false;
        if (!this.dest_table_name.equals(that.dest_table_name))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetPartitionSpecs()) ? 131071 : 524287);
      if (isSetPartitionSpecs())
        hashCode = hashCode * 8191 + partitionSpecs.hashCode();

      hashCode = hashCode * 8191 + ((isSetSource_db()) ? 131071 : 524287);
      if (isSetSource_db())
        hashCode = hashCode * 8191 + source_db.hashCode();

      hashCode = hashCode * 8191 + ((isSetSource_table_name()) ? 131071 : 524287);
      if (isSetSource_table_name())
        hashCode = hashCode * 8191 + source_table_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetDest_db()) ? 131071 : 524287);
      if (isSetDest_db())
        hashCode = hashCode * 8191 + dest_db.hashCode();

      hashCode = hashCode * 8191 + ((isSetDest_table_name()) ? 131071 : 524287);
      if (isSetDest_table_name())
        hashCode = hashCode * 8191 + dest_table_name.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(exchange_partition_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetPartitionSpecs(), other.isSetPartitionSpecs());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPartitionSpecs()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.partitionSpecs, other.partitionSpecs);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetSource_db(), other.isSetSource_db());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSource_db()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.source_db, other.source_db);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetSource_table_name(), other.isSetSource_table_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSource_table_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.source_table_name, other.source_table_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetDest_db(), other.isSetDest_db());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDest_db()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dest_db, other.dest_db);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetDest_table_name(), other.isSetDest_table_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDest_table_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dest_table_name, other.dest_table_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("exchange_partition_args(");
      boolean first = true;

      sb.append("partitionSpecs:");
      if (this.partitionSpecs == null) {
        sb.append("null");
      } else {
        sb.append(this.partitionSpecs);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("source_db:");
      if (this.source_db == null) {
        sb.append("null");
      } else {
        sb.append(this.source_db);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("source_table_name:");
      if (this.source_table_name == null) {
        sb.append("null");
      } else {
        sb.append(this.source_table_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("dest_db:");
      if (this.dest_db == null) {
        sb.append("null");
      } else {
        sb.append(this.dest_db);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("dest_table_name:");
      if (this.dest_table_name == null) {
        sb.append("null");
      } else {
        sb.append(this.dest_table_name);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class exchange_partition_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public exchange_partition_argsStandardScheme getScheme() {
        return new exchange_partition_argsStandardScheme();
      }
    }

    private static class exchange_partition_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<exchange_partition_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, exchange_partition_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // PARTITION_SPECS
              if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
                {
                  org.apache.thrift.protocol.TMap _map1162 = iprot.readMapBegin();
                  struct.partitionSpecs = new java.util.HashMap<java.lang.String,java.lang.String>(2*_map1162.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _key1163;
                  @org.apache.thrift.annotation.Nullable java.lang.String _val1164;
                  for (int _i1165 = 0; _i1165 < _map1162.size; ++_i1165)
                  {
                    _key1163 = iprot.readString();
                    _val1164 = iprot.readString();
                    struct.partitionSpecs.put(_key1163, _val1164);
                  }
                  iprot.readMapEnd();
                }
                struct.setPartitionSpecsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // SOURCE_DB
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.source_db = iprot.readString();
                struct.setSource_dbIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // SOURCE_TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.source_table_name = iprot.readString();
                struct.setSource_table_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // DEST_DB
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.dest_db = iprot.readString();
                struct.setDest_dbIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // DEST_TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.dest_table_name = iprot.readString();
                struct.setDest_table_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, exchange_partition_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.partitionSpecs != null) {
          oprot.writeFieldBegin(PARTITION_SPECS_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.partitionSpecs.size()));
            for (java.util.Map.Entry<java.lang.String, java.lang.String> _iter1166 : struct.partitionSpecs.entrySet())
            {
              oprot.writeString(_iter1166.getKey());
              oprot.writeString(_iter1166.getValue());
            }
            oprot.writeMapEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.source_db != null) {
          oprot.writeFieldBegin(SOURCE_DB_FIELD_DESC);
          oprot.writeString(struct.source_db);
          oprot.writeFieldEnd();
        }
        if (struct.source_table_name != null) {
          oprot.writeFieldBegin(SOURCE_TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.source_table_name);
          oprot.writeFieldEnd();
        }
        if (struct.dest_db != null) {
          oprot.writeFieldBegin(DEST_DB_FIELD_DESC);
          oprot.writeString(struct.dest_db);
          oprot.writeFieldEnd();
        }
        if (struct.dest_table_name != null) {
          oprot.writeFieldBegin(DEST_TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.dest_table_name);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class exchange_partition_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public exchange_partition_argsTupleScheme getScheme() {
        return new exchange_partition_argsTupleScheme();
      }
    }

    private static class exchange_partition_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<exchange_partition_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, exchange_partition_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetPartitionSpecs()) {
          optionals.set(0);
        }
        if (struct.isSetSource_db()) {
          optionals.set(1);
        }
        if (struct.isSetSource_table_name()) {
          optionals.set(2);
        }
        if (struct.isSetDest_db()) {
          optionals.set(3);
        }
        if (struct.isSetDest_table_name()) {
          optionals.set(4);
        }
        oprot.writeBitSet(optionals, 5);
        if (struct.isSetPartitionSpecs()) {
          {
            oprot.writeI32(struct.partitionSpecs.size());
            for (java.util.Map.Entry<java.lang.String, java.lang.String> _iter1167 : struct.partitionSpecs.entrySet())
            {
              oprot.writeString(_iter1167.getKey());
              oprot.writeString(_iter1167.getValue());
            }
          }
        }
        if (struct.isSetSource_db()) {
          oprot.writeString(struct.source_db);
        }
        if (struct.isSetSource_table_name()) {
          oprot.writeString(struct.source_table_name);
        }
        if (struct.isSetDest_db()) {
          oprot.writeString(struct.dest_db);
        }
        if (struct.isSetDest_table_name()) {
          oprot.writeString(struct.dest_table_name);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, exchange_partition_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(5);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TMap _map1168 = iprot.readMapBegin(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING); 
            struct.partitionSpecs = new java.util.HashMap<java.lang.String,java.lang.String>(2*_map1168.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _key1169;
            @org.apache.thrift.annotation.Nullable java.lang.String _val1170;
            for (int _i1171 = 0; _i1171 < _map1168.size; ++_i1171)
            {
              _key1169 = iprot.readString();
              _val1170 = iprot.readString();
              struct.partitionSpecs.put(_key1169, _val1170);
            }
          }
          struct.setPartitionSpecsIsSet(true);
        }
        if (incoming.get(1)) {
          struct.source_db = iprot.readString();
          struct.setSource_dbIsSet(true);
        }
        if (incoming.get(2)) {
          struct.source_table_name = iprot.readString();
          struct.setSource_table_nameIsSet(true);
        }
        if (incoming.get(3)) {
          struct.dest_db = iprot.readString();
          struct.setDest_dbIsSet(true);
        }
        if (incoming.get(4)) {
          struct.dest_table_name = iprot.readString();
          struct.setDest_table_nameIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class exchange_partition_result implements org.apache.thrift.TBase<exchange_partition_result, exchange_partition_result._Fields>, java.io.Serializable, Cloneable, Comparable<exchange_partition_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("exchange_partition_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField O4_FIELD_DESC = new org.apache.thrift.protocol.TField("o4", org.apache.thrift.protocol.TType.STRUCT, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new exchange_partition_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new exchange_partition_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable Partition success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // required
    private @org.apache.thrift.annotation.Nullable InvalidObjectException o3; // required
    private @org.apache.thrift.annotation.Nullable InvalidInputException o4; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3"),
      O4((short)4, "o4");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          case 4: // O4
            return O4;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Partition.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidObjectException.class)));
      tmpMap.put(_Fields.O4, new org.apache.thrift.meta_data.FieldMetaData("o4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidInputException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(exchange_partition_result.class, metaDataMap);
    }

    public exchange_partition_result() {
    }

    public exchange_partition_result(
      Partition success,
      MetaException o1,
      NoSuchObjectException o2,
      InvalidObjectException o3,
      InvalidInputException o4)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
      this.o4 = o4;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public exchange_partition_result(exchange_partition_result other) {
      if (other.isSetSuccess()) {
        this.success = new Partition(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchObjectException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new InvalidObjectException(other.o3);
      }
      if (other.isSetO4()) {
        this.o4 = new InvalidInputException(other.o4);
      }
    }

    public exchange_partition_result deepCopy() {
      return new exchange_partition_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
      this.o4 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public Partition getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable Partition success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidObjectException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable InvalidObjectException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidInputException getO4() {
      return this.o4;
    }

    public void setO4(@org.apache.thrift.annotation.Nullable InvalidInputException o4) {
      this.o4 = o4;
    }

    public void unsetO4() {
      this.o4 = null;
    }

    /** Returns true if field o4 is set (has been assigned a value) and false otherwise */
    public boolean isSetO4() {
      return this.o4 != null;
    }

    public void setO4IsSet(boolean value) {
      if (!value) {
        this.o4 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Partition)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchObjectException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((InvalidObjectException)value);
        }
        break;

      case O4:
        if (value == null) {
          unsetO4();
        } else {
          setO4((InvalidInputException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      case O4:
        return getO4();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      case O4:
        return isSetO4();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof exchange_partition_result)
        return this.equals((exchange_partition_result)that);
      return false;
    }

    public boolean equals(exchange_partition_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      boolean this_present_o4 = true && this.isSetO4();
      boolean that_present_o4 = true && that.isSetO4();
      if (this_present_o4 || that_present_o4) {
        if (!(this_present_o4 && that_present_o4))
          return false;
        if (!this.o4.equals(that.o4))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      hashCode = hashCode * 8191 + ((isSetO4()) ? 131071 : 524287);
      if (isSetO4())
        hashCode = hashCode * 8191 + o4.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(exchange_partition_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO4(), other.isSetO4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o4, other.o4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("exchange_partition_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o4:");
      if (this.o4 == null) {
        sb.append("null");
      } else {
        sb.append(this.o4);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class exchange_partition_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public exchange_partition_resultStandardScheme getScheme() {
        return new exchange_partition_resultStandardScheme();
      }
    }

    private static class exchange_partition_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<exchange_partition_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, exchange_partition_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new Partition();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new InvalidObjectException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // O4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o4 = new InvalidInputException();
                struct.o4.read(iprot);
                struct.setO4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, exchange_partition_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o4 != null) {
          oprot.writeFieldBegin(O4_FIELD_DESC);
          struct.o4.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class exchange_partition_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public exchange_partition_resultTupleScheme getScheme() {
        return new exchange_partition_resultTupleScheme();
      }
    }

    private static class exchange_partition_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<exchange_partition_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, exchange_partition_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        if (struct.isSetO4()) {
          optionals.set(4);
        }
        oprot.writeBitSet(optionals, 5);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
        if (struct.isSetO4()) {
          struct.o4.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, exchange_partition_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(5);
        if (incoming.get(0)) {
          struct.success = new Partition();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new NoSuchObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new InvalidObjectException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.o4 = new InvalidInputException();
          struct.o4.read(iprot);
          struct.setO4IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class exchange_partitions_args implements org.apache.thrift.TBase<exchange_partitions_args, exchange_partitions_args._Fields>, java.io.Serializable, Cloneable, Comparable<exchange_partitions_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("exchange_partitions_args");

    private static final org.apache.thrift.protocol.TField PARTITION_SPECS_FIELD_DESC = new org.apache.thrift.protocol.TField("partitionSpecs", org.apache.thrift.protocol.TType.MAP, (short)1);
    private static final org.apache.thrift.protocol.TField SOURCE_DB_FIELD_DESC = new org.apache.thrift.protocol.TField("source_db", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField SOURCE_TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("source_table_name", org.apache.thrift.protocol.TType.STRING, (short)3);
    private static final org.apache.thrift.protocol.TField DEST_DB_FIELD_DESC = new org.apache.thrift.protocol.TField("dest_db", org.apache.thrift.protocol.TType.STRING, (short)4);
    private static final org.apache.thrift.protocol.TField DEST_TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("dest_table_name", org.apache.thrift.protocol.TType.STRING, (short)5);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new exchange_partitions_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new exchange_partitions_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.lang.String> partitionSpecs; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String source_db; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String source_table_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String dest_db; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String dest_table_name; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      PARTITION_SPECS((short)1, "partitionSpecs"),
      SOURCE_DB((short)2, "source_db"),
      SOURCE_TABLE_NAME((short)3, "source_table_name"),
      DEST_DB((short)4, "dest_db"),
      DEST_TABLE_NAME((short)5, "dest_table_name");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // PARTITION_SPECS
            return PARTITION_SPECS;
          case 2: // SOURCE_DB
            return SOURCE_DB;
          case 3: // SOURCE_TABLE_NAME
            return SOURCE_TABLE_NAME;
          case 4: // DEST_DB
            return DEST_DB;
          case 5: // DEST_TABLE_NAME
            return DEST_TABLE_NAME;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.PARTITION_SPECS, new org.apache.thrift.meta_data.FieldMetaData("partitionSpecs", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      tmpMap.put(_Fields.SOURCE_DB, new org.apache.thrift.meta_data.FieldMetaData("source_db", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.SOURCE_TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("source_table_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.DEST_DB, new org.apache.thrift.meta_data.FieldMetaData("dest_db", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.DEST_TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("dest_table_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(exchange_partitions_args.class, metaDataMap);
    }

    public exchange_partitions_args() {
    }

    public exchange_partitions_args(
      java.util.Map<java.lang.String,java.lang.String> partitionSpecs,
      java.lang.String source_db,
      java.lang.String source_table_name,
      java.lang.String dest_db,
      java.lang.String dest_table_name)
    {
      this();
      this.partitionSpecs = partitionSpecs;
      this.source_db = source_db;
      this.source_table_name = source_table_name;
      this.dest_db = dest_db;
      this.dest_table_name = dest_table_name;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public exchange_partitions_args(exchange_partitions_args other) {
      if (other.isSetPartitionSpecs()) {
        java.util.Map<java.lang.String,java.lang.String> __this__partitionSpecs = new java.util.HashMap<java.lang.String,java.lang.String>(other.partitionSpecs);
        this.partitionSpecs = __this__partitionSpecs;
      }
      if (other.isSetSource_db()) {
        this.source_db = other.source_db;
      }
      if (other.isSetSource_table_name()) {
        this.source_table_name = other.source_table_name;
      }
      if (other.isSetDest_db()) {
        this.dest_db = other.dest_db;
      }
      if (other.isSetDest_table_name()) {
        this.dest_table_name = other.dest_table_name;
      }
    }

    public exchange_partitions_args deepCopy() {
      return new exchange_partitions_args(this);
    }

    @Override
    public void clear() {
      this.partitionSpecs = null;
      this.source_db = null;
      this.source_table_name = null;
      this.dest_db = null;
      this.dest_table_name = null;
    }

    public int getPartitionSpecsSize() {
      return (this.partitionSpecs == null) ? 0 : this.partitionSpecs.size();
    }

    public void putToPartitionSpecs(java.lang.String key, java.lang.String val) {
      if (this.partitionSpecs == null) {
        this.partitionSpecs = new java.util.HashMap<java.lang.String,java.lang.String>();
      }
      this.partitionSpecs.put(key, val);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Map<java.lang.String,java.lang.String> getPartitionSpecs() {
      return this.partitionSpecs;
    }

    public void setPartitionSpecs(@org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.lang.String> partitionSpecs) {
      this.partitionSpecs = partitionSpecs;
    }

    public void unsetPartitionSpecs() {
      this.partitionSpecs = null;
    }

    /** Returns true if field partitionSpecs is set (has been assigned a value) and false otherwise */
    public boolean isSetPartitionSpecs() {
      return this.partitionSpecs != null;
    }

    public void setPartitionSpecsIsSet(boolean value) {
      if (!value) {
        this.partitionSpecs = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getSource_db() {
      return this.source_db;
    }

    public void setSource_db(@org.apache.thrift.annotation.Nullable java.lang.String source_db) {
      this.source_db = source_db;
    }

    public void unsetSource_db() {
      this.source_db = null;
    }

    /** Returns true if field source_db is set (has been assigned a value) and false otherwise */
    public boolean isSetSource_db() {
      return this.source_db != null;
    }

    public void setSource_dbIsSet(boolean value) {
      if (!value) {
        this.source_db = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getSource_table_name() {
      return this.source_table_name;
    }

    public void setSource_table_name(@org.apache.thrift.annotation.Nullable java.lang.String source_table_name) {
      this.source_table_name = source_table_name;
    }

    public void unsetSource_table_name() {
      this.source_table_name = null;
    }

    /** Returns true if field source_table_name is set (has been assigned a value) and false otherwise */
    public boolean isSetSource_table_name() {
      return this.source_table_name != null;
    }

    public void setSource_table_nameIsSet(boolean value) {
      if (!value) {
        this.source_table_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDest_db() {
      return this.dest_db;
    }

    public void setDest_db(@org.apache.thrift.annotation.Nullable java.lang.String dest_db) {
      this.dest_db = dest_db;
    }

    public void unsetDest_db() {
      this.dest_db = null;
    }

    /** Returns true if field dest_db is set (has been assigned a value) and false otherwise */
    public boolean isSetDest_db() {
      return this.dest_db != null;
    }

    public void setDest_dbIsSet(boolean value) {
      if (!value) {
        this.dest_db = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDest_table_name() {
      return this.dest_table_name;
    }

    public void setDest_table_name(@org.apache.thrift.annotation.Nullable java.lang.String dest_table_name) {
      this.dest_table_name = dest_table_name;
    }

    public void unsetDest_table_name() {
      this.dest_table_name = null;
    }

    /** Returns true if field dest_table_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDest_table_name() {
      return this.dest_table_name != null;
    }

    public void setDest_table_nameIsSet(boolean value) {
      if (!value) {
        this.dest_table_name = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case PARTITION_SPECS:
        if (value == null) {
          unsetPartitionSpecs();
        } else {
          setPartitionSpecs((java.util.Map<java.lang.String,java.lang.String>)value);
        }
        break;

      case SOURCE_DB:
        if (value == null) {
          unsetSource_db();
        } else {
          setSource_db((java.lang.String)value);
        }
        break;

      case SOURCE_TABLE_NAME:
        if (value == null) {
          unsetSource_table_name();
        } else {
          setSource_table_name((java.lang.String)value);
        }
        break;

      case DEST_DB:
        if (value == null) {
          unsetDest_db();
        } else {
          setDest_db((java.lang.String)value);
        }
        break;

      case DEST_TABLE_NAME:
        if (value == null) {
          unsetDest_table_name();
        } else {
          setDest_table_name((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case PARTITION_SPECS:
        return getPartitionSpecs();

      case SOURCE_DB:
        return getSource_db();

      case SOURCE_TABLE_NAME:
        return getSource_table_name();

      case DEST_DB:
        return getDest_db();

      case DEST_TABLE_NAME:
        return getDest_table_name();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case PARTITION_SPECS:
        return isSetPartitionSpecs();
      case SOURCE_DB:
        return isSetSource_db();
      case SOURCE_TABLE_NAME:
        return isSetSource_table_name();
      case DEST_DB:
        return isSetDest_db();
      case DEST_TABLE_NAME:
        return isSetDest_table_name();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof exchange_partitions_args)
        return this.equals((exchange_partitions_args)that);
      return false;
    }

    public boolean equals(exchange_partitions_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_partitionSpecs = true && this.isSetPartitionSpecs();
      boolean that_present_partitionSpecs = true && that.isSetPartitionSpecs();
      if (this_present_partitionSpecs || that_present_partitionSpecs) {
        if (!(this_present_partitionSpecs && that_present_partitionSpecs))
          return false;
        if (!this.partitionSpecs.equals(that.partitionSpecs))
          return false;
      }

      boolean this_present_source_db = true && this.isSetSource_db();
      boolean that_present_source_db = true && that.isSetSource_db();
      if (this_present_source_db || that_present_source_db) {
        if (!(this_present_source_db && that_present_source_db))
          return false;
        if (!this.source_db.equals(that.source_db))
          return false;
      }

      boolean this_present_source_table_name = true && this.isSetSource_table_name();
      boolean that_present_source_table_name = true && that.isSetSource_table_name();
      if (this_present_source_table_name || that_present_source_table_name) {
        if (!(this_present_source_table_name && that_present_source_table_name))
          return false;
        if (!this.source_table_name.equals(that.source_table_name))
          return false;
      }

      boolean this_present_dest_db = true && this.isSetDest_db();
      boolean that_present_dest_db = true && that.isSetDest_db();
      if (this_present_dest_db || that_present_dest_db) {
        if (!(this_present_dest_db && that_present_dest_db))
          return false;
        if (!this.dest_db.equals(that.dest_db))
          return false;
      }

      boolean this_present_dest_table_name = true && this.isSetDest_table_name();
      boolean that_present_dest_table_name = true && that.isSetDest_table_name();
      if (this_present_dest_table_name || that_present_dest_table_name) {
        if (!(this_present_dest_table_name && that_present_dest_table_name))
          return false;
        if (!this.dest_table_name.equals(that.dest_table_name))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetPartitionSpecs()) ? 131071 : 524287);
      if (isSetPartitionSpecs())
        hashCode = hashCode * 8191 + partitionSpecs.hashCode();

      hashCode = hashCode * 8191 + ((isSetSource_db()) ? 131071 : 524287);
      if (isSetSource_db())
        hashCode = hashCode * 8191 + source_db.hashCode();

      hashCode = hashCode * 8191 + ((isSetSource_table_name()) ? 131071 : 524287);
      if (isSetSource_table_name())
        hashCode = hashCode * 8191 + source_table_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetDest_db()) ? 131071 : 524287);
      if (isSetDest_db())
        hashCode = hashCode * 8191 + dest_db.hashCode();

      hashCode = hashCode * 8191 + ((isSetDest_table_name()) ? 131071 : 524287);
      if (isSetDest_table_name())
        hashCode = hashCode * 8191 + dest_table_name.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(exchange_partitions_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetPartitionSpecs(), other.isSetPartitionSpecs());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPartitionSpecs()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.partitionSpecs, other.partitionSpecs);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetSource_db(), other.isSetSource_db());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSource_db()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.source_db, other.source_db);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetSource_table_name(), other.isSetSource_table_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSource_table_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.source_table_name, other.source_table_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetDest_db(), other.isSetDest_db());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDest_db()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dest_db, other.dest_db);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetDest_table_name(), other.isSetDest_table_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDest_table_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dest_table_name, other.dest_table_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("exchange_partitions_args(");
      boolean first = true;

      sb.append("partitionSpecs:");
      if (this.partitionSpecs == null) {
        sb.append("null");
      } else {
        sb.append(this.partitionSpecs);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("source_db:");
      if (this.source_db == null) {
        sb.append("null");
      } else {
        sb.append(this.source_db);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("source_table_name:");
      if (this.source_table_name == null) {
        sb.append("null");
      } else {
        sb.append(this.source_table_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("dest_db:");
      if (this.dest_db == null) {
        sb.append("null");
      } else {
        sb.append(this.dest_db);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("dest_table_name:");
      if (this.dest_table_name == null) {
        sb.append("null");
      } else {
        sb.append(this.dest_table_name);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class exchange_partitions_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public exchange_partitions_argsStandardScheme getScheme() {
        return new exchange_partitions_argsStandardScheme();
      }
    }

    private static class exchange_partitions_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<exchange_partitions_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, exchange_partitions_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // PARTITION_SPECS
              if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
                {
                  org.apache.thrift.protocol.TMap _map1172 = iprot.readMapBegin();
                  struct.partitionSpecs = new java.util.HashMap<java.lang.String,java.lang.String>(2*_map1172.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _key1173;
                  @org.apache.thrift.annotation.Nullable java.lang.String _val1174;
                  for (int _i1175 = 0; _i1175 < _map1172.size; ++_i1175)
                  {
                    _key1173 = iprot.readString();
                    _val1174 = iprot.readString();
                    struct.partitionSpecs.put(_key1173, _val1174);
                  }
                  iprot.readMapEnd();
                }
                struct.setPartitionSpecsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // SOURCE_DB
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.source_db = iprot.readString();
                struct.setSource_dbIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // SOURCE_TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.source_table_name = iprot.readString();
                struct.setSource_table_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // DEST_DB
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.dest_db = iprot.readString();
                struct.setDest_dbIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // DEST_TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.dest_table_name = iprot.readString();
                struct.setDest_table_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, exchange_partitions_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.partitionSpecs != null) {
          oprot.writeFieldBegin(PARTITION_SPECS_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.partitionSpecs.size()));
            for (java.util.Map.Entry<java.lang.String, java.lang.String> _iter1176 : struct.partitionSpecs.entrySet())
            {
              oprot.writeString(_iter1176.getKey());
              oprot.writeString(_iter1176.getValue());
            }
            oprot.writeMapEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.source_db != null) {
          oprot.writeFieldBegin(SOURCE_DB_FIELD_DESC);
          oprot.writeString(struct.source_db);
          oprot.writeFieldEnd();
        }
        if (struct.source_table_name != null) {
          oprot.writeFieldBegin(SOURCE_TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.source_table_name);
          oprot.writeFieldEnd();
        }
        if (struct.dest_db != null) {
          oprot.writeFieldBegin(DEST_DB_FIELD_DESC);
          oprot.writeString(struct.dest_db);
          oprot.writeFieldEnd();
        }
        if (struct.dest_table_name != null) {
          oprot.writeFieldBegin(DEST_TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.dest_table_name);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class exchange_partitions_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public exchange_partitions_argsTupleScheme getScheme() {
        return new exchange_partitions_argsTupleScheme();
      }
    }

    private static class exchange_partitions_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<exchange_partitions_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, exchange_partitions_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetPartitionSpecs()) {
          optionals.set(0);
        }
        if (struct.isSetSource_db()) {
          optionals.set(1);
        }
        if (struct.isSetSource_table_name()) {
          optionals.set(2);
        }
        if (struct.isSetDest_db()) {
          optionals.set(3);
        }
        if (struct.isSetDest_table_name()) {
          optionals.set(4);
        }
        oprot.writeBitSet(optionals, 5);
        if (struct.isSetPartitionSpecs()) {
          {
            oprot.writeI32(struct.partitionSpecs.size());
            for (java.util.Map.Entry<java.lang.String, java.lang.String> _iter1177 : struct.partitionSpecs.entrySet())
            {
              oprot.writeString(_iter1177.getKey());
              oprot.writeString(_iter1177.getValue());
            }
          }
        }
        if (struct.isSetSource_db()) {
          oprot.writeString(struct.source_db);
        }
        if (struct.isSetSource_table_name()) {
          oprot.writeString(struct.source_table_name);
        }
        if (struct.isSetDest_db()) {
          oprot.writeString(struct.dest_db);
        }
        if (struct.isSetDest_table_name()) {
          oprot.writeString(struct.dest_table_name);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, exchange_partitions_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(5);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TMap _map1178 = iprot.readMapBegin(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING); 
            struct.partitionSpecs = new java.util.HashMap<java.lang.String,java.lang.String>(2*_map1178.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _key1179;
            @org.apache.thrift.annotation.Nullable java.lang.String _val1180;
            for (int _i1181 = 0; _i1181 < _map1178.size; ++_i1181)
            {
              _key1179 = iprot.readString();
              _val1180 = iprot.readString();
              struct.partitionSpecs.put(_key1179, _val1180);
            }
          }
          struct.setPartitionSpecsIsSet(true);
        }
        if (incoming.get(1)) {
          struct.source_db = iprot.readString();
          struct.setSource_dbIsSet(true);
        }
        if (incoming.get(2)) {
          struct.source_table_name = iprot.readString();
          struct.setSource_table_nameIsSet(true);
        }
        if (incoming.get(3)) {
          struct.dest_db = iprot.readString();
          struct.setDest_dbIsSet(true);
        }
        if (incoming.get(4)) {
          struct.dest_table_name = iprot.readString();
          struct.setDest_table_nameIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class exchange_partitions_result implements org.apache.thrift.TBase<exchange_partitions_result, exchange_partitions_result._Fields>, java.io.Serializable, Cloneable, Comparable<exchange_partitions_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("exchange_partitions_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField O4_FIELD_DESC = new org.apache.thrift.protocol.TField("o4", org.apache.thrift.protocol.TType.STRUCT, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new exchange_partitions_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new exchange_partitions_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<Partition> success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // required
    private @org.apache.thrift.annotation.Nullable InvalidObjectException o3; // required
    private @org.apache.thrift.annotation.Nullable InvalidInputException o4; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3"),
      O4((short)4, "o4");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          case 4: // O4
            return O4;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Partition.class))));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidObjectException.class)));
      tmpMap.put(_Fields.O4, new org.apache.thrift.meta_data.FieldMetaData("o4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidInputException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(exchange_partitions_result.class, metaDataMap);
    }

    public exchange_partitions_result() {
    }

    public exchange_partitions_result(
      java.util.List<Partition> success,
      MetaException o1,
      NoSuchObjectException o2,
      InvalidObjectException o3,
      InvalidInputException o4)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
      this.o4 = o4;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public exchange_partitions_result(exchange_partitions_result other) {
      if (other.isSetSuccess()) {
        java.util.List<Partition> __this__success = new java.util.ArrayList<Partition>(other.success.size());
        for (Partition other_element : other.success) {
          __this__success.add(new Partition(other_element));
        }
        this.success = __this__success;
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchObjectException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new InvalidObjectException(other.o3);
      }
      if (other.isSetO4()) {
        this.o4 = new InvalidInputException(other.o4);
      }
    }

    public exchange_partitions_result deepCopy() {
      return new exchange_partitions_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
      this.o4 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<Partition> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(Partition elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<Partition>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<Partition> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<Partition> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidObjectException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable InvalidObjectException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidInputException getO4() {
      return this.o4;
    }

    public void setO4(@org.apache.thrift.annotation.Nullable InvalidInputException o4) {
      this.o4 = o4;
    }

    public void unsetO4() {
      this.o4 = null;
    }

    /** Returns true if field o4 is set (has been assigned a value) and false otherwise */
    public boolean isSetO4() {
      return this.o4 != null;
    }

    public void setO4IsSet(boolean value) {
      if (!value) {
        this.o4 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<Partition>)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchObjectException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((InvalidObjectException)value);
        }
        break;

      case O4:
        if (value == null) {
          unsetO4();
        } else {
          setO4((InvalidInputException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      case O4:
        return getO4();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      case O4:
        return isSetO4();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof exchange_partitions_result)
        return this.equals((exchange_partitions_result)that);
      return false;
    }

    public boolean equals(exchange_partitions_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      boolean this_present_o4 = true && this.isSetO4();
      boolean that_present_o4 = true && that.isSetO4();
      if (this_present_o4 || that_present_o4) {
        if (!(this_present_o4 && that_present_o4))
          return false;
        if (!this.o4.equals(that.o4))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      hashCode = hashCode * 8191 + ((isSetO4()) ? 131071 : 524287);
      if (isSetO4())
        hashCode = hashCode * 8191 + o4.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(exchange_partitions_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO4(), other.isSetO4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o4, other.o4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("exchange_partitions_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o4:");
      if (this.o4 == null) {
        sb.append("null");
      } else {
        sb.append(this.o4);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class exchange_partitions_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public exchange_partitions_resultStandardScheme getScheme() {
        return new exchange_partitions_resultStandardScheme();
      }
    }

    private static class exchange_partitions_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<exchange_partitions_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, exchange_partitions_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1182 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<Partition>(_list1182.size);
                  @org.apache.thrift.annotation.Nullable Partition _elem1183;
                  for (int _i1184 = 0; _i1184 < _list1182.size; ++_i1184)
                  {
                    _elem1183 = new Partition();
                    _elem1183.read(iprot);
                    struct.success.add(_elem1183);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new InvalidObjectException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // O4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o4 = new InvalidInputException();
                struct.o4.read(iprot);
                struct.setO4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, exchange_partitions_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
            for (Partition _iter1185 : struct.success)
            {
              _iter1185.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o4 != null) {
          oprot.writeFieldBegin(O4_FIELD_DESC);
          struct.o4.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class exchange_partitions_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public exchange_partitions_resultTupleScheme getScheme() {
        return new exchange_partitions_resultTupleScheme();
      }
    }

    private static class exchange_partitions_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<exchange_partitions_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, exchange_partitions_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        if (struct.isSetO4()) {
          optionals.set(4);
        }
        oprot.writeBitSet(optionals, 5);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (Partition _iter1186 : struct.success)
            {
              _iter1186.write(oprot);
            }
          }
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
        if (struct.isSetO4()) {
          struct.o4.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, exchange_partitions_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(5);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list1187 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
            struct.success = new java.util.ArrayList<Partition>(_list1187.size);
            @org.apache.thrift.annotation.Nullable Partition _elem1188;
            for (int _i1189 = 0; _i1189 < _list1187.size; ++_i1189)
            {
              _elem1188 = new Partition();
              _elem1188.read(iprot);
              struct.success.add(_elem1188);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new NoSuchObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new InvalidObjectException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.o4 = new InvalidInputException();
          struct.o4.read(iprot);
          struct.setO4IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition_with_auth_args implements org.apache.thrift.TBase<get_partition_with_auth_args, get_partition_with_auth_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_partition_with_auth_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partition_with_auth_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField PART_VALS_FIELD_DESC = new org.apache.thrift.protocol.TField("part_vals", org.apache.thrift.protocol.TType.LIST, (short)3);
    private static final org.apache.thrift.protocol.TField USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("user_name", org.apache.thrift.protocol.TType.STRING, (short)4);
    private static final org.apache.thrift.protocol.TField GROUP_NAMES_FIELD_DESC = new org.apache.thrift.protocol.TField("group_names", org.apache.thrift.protocol.TType.LIST, (short)5);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_partition_with_auth_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_partition_with_auth_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> part_vals; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String user_name; // required
    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> group_names; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TBL_NAME((short)2, "tbl_name"),
      PART_VALS((short)3, "part_vals"),
      USER_NAME((short)4, "user_name"),
      GROUP_NAMES((short)5, "group_names");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // PART_VALS
            return PART_VALS;
          case 4: // USER_NAME
            return USER_NAME;
          case 5: // GROUP_NAMES
            return GROUP_NAMES;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PART_VALS, new org.apache.thrift.meta_data.FieldMetaData("part_vals", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      tmpMap.put(_Fields.USER_NAME, new org.apache.thrift.meta_data.FieldMetaData("user_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.GROUP_NAMES, new org.apache.thrift.meta_data.FieldMetaData("group_names", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partition_with_auth_args.class, metaDataMap);
    }

    public get_partition_with_auth_args() {
    }

    public get_partition_with_auth_args(
      java.lang.String db_name,
      java.lang.String tbl_name,
      java.util.List<java.lang.String> part_vals,
      java.lang.String user_name,
      java.util.List<java.lang.String> group_names)
    {
      this();
      this.db_name = db_name;
      this.tbl_name = tbl_name;
      this.part_vals = part_vals;
      this.user_name = user_name;
      this.group_names = group_names;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_partition_with_auth_args(get_partition_with_auth_args other) {
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      if (other.isSetPart_vals()) {
        java.util.List<java.lang.String> __this__part_vals = new java.util.ArrayList<java.lang.String>(other.part_vals);
        this.part_vals = __this__part_vals;
      }
      if (other.isSetUser_name()) {
        this.user_name = other.user_name;
      }
      if (other.isSetGroup_names()) {
        java.util.List<java.lang.String> __this__group_names = new java.util.ArrayList<java.lang.String>(other.group_names);
        this.group_names = __this__group_names;
      }
    }

    public get_partition_with_auth_args deepCopy() {
      return new get_partition_with_auth_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.tbl_name = null;
      this.part_vals = null;
      this.user_name = null;
      this.group_names = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    public int getPart_valsSize() {
      return (this.part_vals == null) ? 0 : this.part_vals.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getPart_valsIterator() {
      return (this.part_vals == null) ? null : this.part_vals.iterator();
    }

    public void addToPart_vals(java.lang.String elem) {
      if (this.part_vals == null) {
        this.part_vals = new java.util.ArrayList<java.lang.String>();
      }
      this.part_vals.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getPart_vals() {
      return this.part_vals;
    }

    public void setPart_vals(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> part_vals) {
      this.part_vals = part_vals;
    }

    public void unsetPart_vals() {
      this.part_vals = null;
    }

    /** Returns true if field part_vals is set (has been assigned a value) and false otherwise */
    public boolean isSetPart_vals() {
      return this.part_vals != null;
    }

    public void setPart_valsIsSet(boolean value) {
      if (!value) {
        this.part_vals = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getUser_name() {
      return this.user_name;
    }

    public void setUser_name(@org.apache.thrift.annotation.Nullable java.lang.String user_name) {
      this.user_name = user_name;
    }

    public void unsetUser_name() {
      this.user_name = null;
    }

    /** Returns true if field user_name is set (has been assigned a value) and false otherwise */
    public boolean isSetUser_name() {
      return this.user_name != null;
    }

    public void setUser_nameIsSet(boolean value) {
      if (!value) {
        this.user_name = null;
      }
    }

    public int getGroup_namesSize() {
      return (this.group_names == null) ? 0 : this.group_names.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getGroup_namesIterator() {
      return (this.group_names == null) ? null : this.group_names.iterator();
    }

    public void addToGroup_names(java.lang.String elem) {
      if (this.group_names == null) {
        this.group_names = new java.util.ArrayList<java.lang.String>();
      }
      this.group_names.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getGroup_names() {
      return this.group_names;
    }

    public void setGroup_names(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> group_names) {
      this.group_names = group_names;
    }

    public void unsetGroup_names() {
      this.group_names = null;
    }

    /** Returns true if field group_names is set (has been assigned a value) and false otherwise */
    public boolean isSetGroup_names() {
      return this.group_names != null;
    }

    public void setGroup_namesIsSet(boolean value) {
      if (!value) {
        this.group_names = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case PART_VALS:
        if (value == null) {
          unsetPart_vals();
        } else {
          setPart_vals((java.util.List<java.lang.String>)value);
        }
        break;

      case USER_NAME:
        if (value == null) {
          unsetUser_name();
        } else {
          setUser_name((java.lang.String)value);
        }
        break;

      case GROUP_NAMES:
        if (value == null) {
          unsetGroup_names();
        } else {
          setGroup_names((java.util.List<java.lang.String>)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TBL_NAME:
        return getTbl_name();

      case PART_VALS:
        return getPart_vals();

      case USER_NAME:
        return getUser_name();

      case GROUP_NAMES:
        return getGroup_names();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TBL_NAME:
        return isSetTbl_name();
      case PART_VALS:
        return isSetPart_vals();
      case USER_NAME:
        return isSetUser_name();
      case GROUP_NAMES:
        return isSetGroup_names();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_partition_with_auth_args)
        return this.equals((get_partition_with_auth_args)that);
      return false;
    }

    public boolean equals(get_partition_with_auth_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_part_vals = true && this.isSetPart_vals();
      boolean that_present_part_vals = true && that.isSetPart_vals();
      if (this_present_part_vals || that_present_part_vals) {
        if (!(this_present_part_vals && that_present_part_vals))
          return false;
        if (!this.part_vals.equals(that.part_vals))
          return false;
      }

      boolean this_present_user_name = true && this.isSetUser_name();
      boolean that_present_user_name = true && that.isSetUser_name();
      if (this_present_user_name || that_present_user_name) {
        if (!(this_present_user_name && that_present_user_name))
          return false;
        if (!this.user_name.equals(that.user_name))
          return false;
      }

      boolean this_present_group_names = true && this.isSetGroup_names();
      boolean that_present_group_names = true && that.isSetGroup_names();
      if (this_present_group_names || that_present_group_names) {
        if (!(this_present_group_names && that_present_group_names))
          return false;
        if (!this.group_names.equals(that.group_names))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetPart_vals()) ? 131071 : 524287);
      if (isSetPart_vals())
        hashCode = hashCode * 8191 + part_vals.hashCode();

      hashCode = hashCode * 8191 + ((isSetUser_name()) ? 131071 : 524287);
      if (isSetUser_name())
        hashCode = hashCode * 8191 + user_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetGroup_names()) ? 131071 : 524287);
      if (isSetGroup_names())
        hashCode = hashCode * 8191 + group_names.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_partition_with_auth_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetPart_vals(), other.isSetPart_vals());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPart_vals()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.part_vals, other.part_vals);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetUser_name(), other.isSetUser_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUser_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.user_name, other.user_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetGroup_names(), other.isSetGroup_names());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetGroup_names()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.group_names, other.group_names);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_partition_with_auth_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("part_vals:");
      if (this.part_vals == null) {
        sb.append("null");
      } else {
        sb.append(this.part_vals);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("user_name:");
      if (this.user_name == null) {
        sb.append("null");
      } else {
        sb.append(this.user_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("group_names:");
      if (this.group_names == null) {
        sb.append("null");
      } else {
        sb.append(this.group_names);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_partition_with_auth_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partition_with_auth_argsStandardScheme getScheme() {
        return new get_partition_with_auth_argsStandardScheme();
      }
    }

    private static class get_partition_with_auth_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_partition_with_auth_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_partition_with_auth_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // PART_VALS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1190 = iprot.readListBegin();
                  struct.part_vals = new java.util.ArrayList<java.lang.String>(_list1190.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem1191;
                  for (int _i1192 = 0; _i1192 < _list1190.size; ++_i1192)
                  {
                    _elem1191 = iprot.readString();
                    struct.part_vals.add(_elem1191);
                  }
                  iprot.readListEnd();
                }
                struct.setPart_valsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // USER_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.user_name = iprot.readString();
                struct.setUser_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // GROUP_NAMES
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1193 = iprot.readListBegin();
                  struct.group_names = new java.util.ArrayList<java.lang.String>(_list1193.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem1194;
                  for (int _i1195 = 0; _i1195 < _list1193.size; ++_i1195)
                  {
                    _elem1194 = iprot.readString();
                    struct.group_names.add(_elem1194);
                  }
                  iprot.readListEnd();
                }
                struct.setGroup_namesIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_partition_with_auth_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        if (struct.part_vals != null) {
          oprot.writeFieldBegin(PART_VALS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.part_vals.size()));
            for (java.lang.String _iter1196 : struct.part_vals)
            {
              oprot.writeString(_iter1196);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.user_name != null) {
          oprot.writeFieldBegin(USER_NAME_FIELD_DESC);
          oprot.writeString(struct.user_name);
          oprot.writeFieldEnd();
        }
        if (struct.group_names != null) {
          oprot.writeFieldBegin(GROUP_NAMES_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.group_names.size()));
            for (java.lang.String _iter1197 : struct.group_names)
            {
              oprot.writeString(_iter1197);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_partition_with_auth_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partition_with_auth_argsTupleScheme getScheme() {
        return new get_partition_with_auth_argsTupleScheme();
      }
    }

    private static class get_partition_with_auth_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_partition_with_auth_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_partition_with_auth_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetPart_vals()) {
          optionals.set(2);
        }
        if (struct.isSetUser_name()) {
          optionals.set(3);
        }
        if (struct.isSetGroup_names()) {
          optionals.set(4);
        }
        oprot.writeBitSet(optionals, 5);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetPart_vals()) {
          {
            oprot.writeI32(struct.part_vals.size());
            for (java.lang.String _iter1198 : struct.part_vals)
            {
              oprot.writeString(_iter1198);
            }
          }
        }
        if (struct.isSetUser_name()) {
          oprot.writeString(struct.user_name);
        }
        if (struct.isSetGroup_names()) {
          {
            oprot.writeI32(struct.group_names.size());
            for (java.lang.String _iter1199 : struct.group_names)
            {
              oprot.writeString(_iter1199);
            }
          }
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_partition_with_auth_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(5);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          {
            org.apache.thrift.protocol.TList _list1200 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.part_vals = new java.util.ArrayList<java.lang.String>(_list1200.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem1201;
            for (int _i1202 = 0; _i1202 < _list1200.size; ++_i1202)
            {
              _elem1201 = iprot.readString();
              struct.part_vals.add(_elem1201);
            }
          }
          struct.setPart_valsIsSet(true);
        }
        if (incoming.get(3)) {
          struct.user_name = iprot.readString();
          struct.setUser_nameIsSet(true);
        }
        if (incoming.get(4)) {
          {
            org.apache.thrift.protocol.TList _list1203 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.group_names = new java.util.ArrayList<java.lang.String>(_list1203.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem1204;
            for (int _i1205 = 0; _i1205 < _list1203.size; ++_i1205)
            {
              _elem1204 = iprot.readString();
              struct.group_names.add(_elem1204);
            }
          }
          struct.setGroup_namesIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition_with_auth_result implements org.apache.thrift.TBase<get_partition_with_auth_result, get_partition_with_auth_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_partition_with_auth_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partition_with_auth_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_partition_with_auth_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_partition_with_auth_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable Partition success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Partition.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partition_with_auth_result.class, metaDataMap);
    }

    public get_partition_with_auth_result() {
    }

    public get_partition_with_auth_result(
      Partition success,
      MetaException o1,
      NoSuchObjectException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_partition_with_auth_result(get_partition_with_auth_result other) {
      if (other.isSetSuccess()) {
        this.success = new Partition(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchObjectException(other.o2);
      }
    }

    public get_partition_with_auth_result deepCopy() {
      return new get_partition_with_auth_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public Partition getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable Partition success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Partition)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchObjectException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_partition_with_auth_result)
        return this.equals((get_partition_with_auth_result)that);
      return false;
    }

    public boolean equals(get_partition_with_auth_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_partition_with_auth_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_partition_with_auth_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_partition_with_auth_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partition_with_auth_resultStandardScheme getScheme() {
        return new get_partition_with_auth_resultStandardScheme();
      }
    }

    private static class get_partition_with_auth_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_partition_with_auth_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_partition_with_auth_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new Partition();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_partition_with_auth_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_partition_with_auth_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partition_with_auth_resultTupleScheme getScheme() {
        return new get_partition_with_auth_resultTupleScheme();
      }
    }

    private static class get_partition_with_auth_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_partition_with_auth_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_partition_with_auth_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_partition_with_auth_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = new Partition();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new NoSuchObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition_by_name_args implements org.apache.thrift.TBase<get_partition_by_name_args, get_partition_by_name_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_partition_by_name_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partition_by_name_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField PART_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("part_name", org.apache.thrift.protocol.TType.STRING, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_partition_by_name_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_partition_by_name_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String part_name; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TBL_NAME((short)2, "tbl_name"),
      PART_NAME((short)3, "part_name");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // PART_NAME
            return PART_NAME;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PART_NAME, new org.apache.thrift.meta_data.FieldMetaData("part_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partition_by_name_args.class, metaDataMap);
    }

    public get_partition_by_name_args() {
    }

    public get_partition_by_name_args(
      java.lang.String db_name,
      java.lang.String tbl_name,
      java.lang.String part_name)
    {
      this();
      this.db_name = db_name;
      this.tbl_name = tbl_name;
      this.part_name = part_name;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_partition_by_name_args(get_partition_by_name_args other) {
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      if (other.isSetPart_name()) {
        this.part_name = other.part_name;
      }
    }

    public get_partition_by_name_args deepCopy() {
      return new get_partition_by_name_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.tbl_name = null;
      this.part_name = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getPart_name() {
      return this.part_name;
    }

    public void setPart_name(@org.apache.thrift.annotation.Nullable java.lang.String part_name) {
      this.part_name = part_name;
    }

    public void unsetPart_name() {
      this.part_name = null;
    }

    /** Returns true if field part_name is set (has been assigned a value) and false otherwise */
    public boolean isSetPart_name() {
      return this.part_name != null;
    }

    public void setPart_nameIsSet(boolean value) {
      if (!value) {
        this.part_name = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case PART_NAME:
        if (value == null) {
          unsetPart_name();
        } else {
          setPart_name((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TBL_NAME:
        return getTbl_name();

      case PART_NAME:
        return getPart_name();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TBL_NAME:
        return isSetTbl_name();
      case PART_NAME:
        return isSetPart_name();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_partition_by_name_args)
        return this.equals((get_partition_by_name_args)that);
      return false;
    }

    public boolean equals(get_partition_by_name_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_part_name = true && this.isSetPart_name();
      boolean that_present_part_name = true && that.isSetPart_name();
      if (this_present_part_name || that_present_part_name) {
        if (!(this_present_part_name && that_present_part_name))
          return false;
        if (!this.part_name.equals(that.part_name))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetPart_name()) ? 131071 : 524287);
      if (isSetPart_name())
        hashCode = hashCode * 8191 + part_name.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_partition_by_name_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetPart_name(), other.isSetPart_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPart_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.part_name, other.part_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_partition_by_name_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("part_name:");
      if (this.part_name == null) {
        sb.append("null");
      } else {
        sb.append(this.part_name);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_partition_by_name_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partition_by_name_argsStandardScheme getScheme() {
        return new get_partition_by_name_argsStandardScheme();
      }
    }

    private static class get_partition_by_name_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_partition_by_name_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_partition_by_name_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // PART_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.part_name = iprot.readString();
                struct.setPart_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_partition_by_name_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        if (struct.part_name != null) {
          oprot.writeFieldBegin(PART_NAME_FIELD_DESC);
          oprot.writeString(struct.part_name);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_partition_by_name_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partition_by_name_argsTupleScheme getScheme() {
        return new get_partition_by_name_argsTupleScheme();
      }
    }

    private static class get_partition_by_name_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_partition_by_name_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_partition_by_name_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetPart_name()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetPart_name()) {
          oprot.writeString(struct.part_name);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_partition_by_name_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.part_name = iprot.readString();
          struct.setPart_nameIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition_by_name_result implements org.apache.thrift.TBase<get_partition_by_name_result, get_partition_by_name_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_partition_by_name_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partition_by_name_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_partition_by_name_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_partition_by_name_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable Partition success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Partition.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partition_by_name_result.class, metaDataMap);
    }

    public get_partition_by_name_result() {
    }

    public get_partition_by_name_result(
      Partition success,
      MetaException o1,
      NoSuchObjectException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_partition_by_name_result(get_partition_by_name_result other) {
      if (other.isSetSuccess()) {
        this.success = new Partition(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchObjectException(other.o2);
      }
    }

    public get_partition_by_name_result deepCopy() {
      return new get_partition_by_name_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public Partition getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable Partition success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Partition)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchObjectException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_partition_by_name_result)
        return this.equals((get_partition_by_name_result)that);
      return false;
    }

    public boolean equals(get_partition_by_name_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_partition_by_name_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_partition_by_name_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_partition_by_name_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partition_by_name_resultStandardScheme getScheme() {
        return new get_partition_by_name_resultStandardScheme();
      }
    }

    private static class get_partition_by_name_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_partition_by_name_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_partition_by_name_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new Partition();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_partition_by_name_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_partition_by_name_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partition_by_name_resultTupleScheme getScheme() {
        return new get_partition_by_name_resultTupleScheme();
      }
    }

    private static class get_partition_by_name_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_partition_by_name_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_partition_by_name_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_partition_by_name_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = new Partition();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new NoSuchObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_args implements org.apache.thrift.TBase<get_partitions_args, get_partitions_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_partitions_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partitions_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField MAX_PARTS_FIELD_DESC = new org.apache.thrift.protocol.TField("max_parts", org.apache.thrift.protocol.TType.I16, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_partitions_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_partitions_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private short max_parts; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TBL_NAME((short)2, "tbl_name"),
      MAX_PARTS((short)3, "max_parts");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // MAX_PARTS
            return MAX_PARTS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __MAX_PARTS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.MAX_PARTS, new org.apache.thrift.meta_data.FieldMetaData("max_parts", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I16)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partitions_args.class, metaDataMap);
    }

    public get_partitions_args() {
      this.max_parts = (short)-1;

    }

    public get_partitions_args(
      java.lang.String db_name,
      java.lang.String tbl_name,
      short max_parts)
    {
      this();
      this.db_name = db_name;
      this.tbl_name = tbl_name;
      this.max_parts = max_parts;
      setMax_partsIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_partitions_args(get_partitions_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      this.max_parts = other.max_parts;
    }

    public get_partitions_args deepCopy() {
      return new get_partitions_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.tbl_name = null;
      this.max_parts = (short)-1;

    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    public short getMax_parts() {
      return this.max_parts;
    }

    public void setMax_parts(short max_parts) {
      this.max_parts = max_parts;
      setMax_partsIsSet(true);
    }

    public void unsetMax_parts() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __MAX_PARTS_ISSET_ID);
    }

    /** Returns true if field max_parts is set (has been assigned a value) and false otherwise */
    public boolean isSetMax_parts() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __MAX_PARTS_ISSET_ID);
    }

    public void setMax_partsIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __MAX_PARTS_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case MAX_PARTS:
        if (value == null) {
          unsetMax_parts();
        } else {
          setMax_parts((java.lang.Short)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TBL_NAME:
        return getTbl_name();

      case MAX_PARTS:
        return getMax_parts();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TBL_NAME:
        return isSetTbl_name();
      case MAX_PARTS:
        return isSetMax_parts();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_partitions_args)
        return this.equals((get_partitions_args)that);
      return false;
    }

    public boolean equals(get_partitions_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_max_parts = true;
      boolean that_present_max_parts = true;
      if (this_present_max_parts || that_present_max_parts) {
        if (!(this_present_max_parts && that_present_max_parts))
          return false;
        if (this.max_parts != that.max_parts)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + max_parts;

      return hashCode;
    }

    @Override
    public int compareTo(get_partitions_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetMax_parts(), other.isSetMax_parts());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetMax_parts()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.max_parts, other.max_parts);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_partitions_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("max_parts:");
      sb.append(this.max_parts);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_partitions_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_argsStandardScheme getScheme() {
        return new get_partitions_argsStandardScheme();
      }
    }

    private static class get_partitions_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_partitions_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_partitions_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // MAX_PARTS
              if (schemeField.type == org.apache.thrift.protocol.TType.I16) {
                struct.max_parts = iprot.readI16();
                struct.setMax_partsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_partitions_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(MAX_PARTS_FIELD_DESC);
        oprot.writeI16(struct.max_parts);
        oprot.writeFieldEnd();
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_partitions_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_argsTupleScheme getScheme() {
        return new get_partitions_argsTupleScheme();
      }
    }

    private static class get_partitions_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_partitions_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_partitions_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetMax_parts()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetMax_parts()) {
          oprot.writeI16(struct.max_parts);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_partitions_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.max_parts = iprot.readI16();
          struct.setMax_partsIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_result implements org.apache.thrift.TBase<get_partitions_result, get_partitions_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_partitions_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partitions_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_partitions_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_partitions_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<Partition> success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Partition.class))));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partitions_result.class, metaDataMap);
    }

    public get_partitions_result() {
    }

    public get_partitions_result(
      java.util.List<Partition> success,
      NoSuchObjectException o1,
      MetaException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_partitions_result(get_partitions_result other) {
      if (other.isSetSuccess()) {
        java.util.List<Partition> __this__success = new java.util.ArrayList<Partition>(other.success.size());
        for (Partition other_element : other.success) {
          __this__success.add(new Partition(other_element));
        }
        this.success = __this__success;
      }
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public get_partitions_result deepCopy() {
      return new get_partitions_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<Partition> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(Partition elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<Partition>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<Partition> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<Partition> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<Partition>)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_partitions_result)
        return this.equals((get_partitions_result)that);
      return false;
    }

    public boolean equals(get_partitions_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_partitions_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_partitions_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_partitions_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_resultStandardScheme getScheme() {
        return new get_partitions_resultStandardScheme();
      }
    }

    private static class get_partitions_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_partitions_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_partitions_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1206 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<Partition>(_list1206.size);
                  @org.apache.thrift.annotation.Nullable Partition _elem1207;
                  for (int _i1208 = 0; _i1208 < _list1206.size; ++_i1208)
                  {
                    _elem1207 = new Partition();
                    _elem1207.read(iprot);
                    struct.success.add(_elem1207);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_partitions_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
            for (Partition _iter1209 : struct.success)
            {
              _iter1209.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_partitions_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_resultTupleScheme getScheme() {
        return new get_partitions_resultTupleScheme();
      }
    }

    private static class get_partitions_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_partitions_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_partitions_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (Partition _iter1210 : struct.success)
            {
              _iter1210.write(oprot);
            }
          }
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_partitions_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list1211 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
            struct.success = new java.util.ArrayList<Partition>(_list1211.size);
            @org.apache.thrift.annotation.Nullable Partition _elem1212;
            for (int _i1213 = 0; _i1213 < _list1211.size; ++_i1213)
            {
              _elem1212 = new Partition();
              _elem1212.read(iprot);
              struct.success.add(_elem1212);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_with_auth_args implements org.apache.thrift.TBase<get_partitions_with_auth_args, get_partitions_with_auth_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_partitions_with_auth_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partitions_with_auth_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField MAX_PARTS_FIELD_DESC = new org.apache.thrift.protocol.TField("max_parts", org.apache.thrift.protocol.TType.I16, (short)3);
    private static final org.apache.thrift.protocol.TField USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("user_name", org.apache.thrift.protocol.TType.STRING, (short)4);
    private static final org.apache.thrift.protocol.TField GROUP_NAMES_FIELD_DESC = new org.apache.thrift.protocol.TField("group_names", org.apache.thrift.protocol.TType.LIST, (short)5);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_partitions_with_auth_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_partitions_with_auth_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private short max_parts; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String user_name; // required
    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> group_names; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TBL_NAME((short)2, "tbl_name"),
      MAX_PARTS((short)3, "max_parts"),
      USER_NAME((short)4, "user_name"),
      GROUP_NAMES((short)5, "group_names");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // MAX_PARTS
            return MAX_PARTS;
          case 4: // USER_NAME
            return USER_NAME;
          case 5: // GROUP_NAMES
            return GROUP_NAMES;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __MAX_PARTS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.MAX_PARTS, new org.apache.thrift.meta_data.FieldMetaData("max_parts", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I16)));
      tmpMap.put(_Fields.USER_NAME, new org.apache.thrift.meta_data.FieldMetaData("user_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.GROUP_NAMES, new org.apache.thrift.meta_data.FieldMetaData("group_names", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partitions_with_auth_args.class, metaDataMap);
    }

    public get_partitions_with_auth_args() {
      this.max_parts = (short)-1;

    }

    public get_partitions_with_auth_args(
      java.lang.String db_name,
      java.lang.String tbl_name,
      short max_parts,
      java.lang.String user_name,
      java.util.List<java.lang.String> group_names)
    {
      this();
      this.db_name = db_name;
      this.tbl_name = tbl_name;
      this.max_parts = max_parts;
      setMax_partsIsSet(true);
      this.user_name = user_name;
      this.group_names = group_names;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_partitions_with_auth_args(get_partitions_with_auth_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      this.max_parts = other.max_parts;
      if (other.isSetUser_name()) {
        this.user_name = other.user_name;
      }
      if (other.isSetGroup_names()) {
        java.util.List<java.lang.String> __this__group_names = new java.util.ArrayList<java.lang.String>(other.group_names);
        this.group_names = __this__group_names;
      }
    }

    public get_partitions_with_auth_args deepCopy() {
      return new get_partitions_with_auth_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.tbl_name = null;
      this.max_parts = (short)-1;

      this.user_name = null;
      this.group_names = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    public short getMax_parts() {
      return this.max_parts;
    }

    public void setMax_parts(short max_parts) {
      this.max_parts = max_parts;
      setMax_partsIsSet(true);
    }

    public void unsetMax_parts() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __MAX_PARTS_ISSET_ID);
    }

    /** Returns true if field max_parts is set (has been assigned a value) and false otherwise */
    public boolean isSetMax_parts() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __MAX_PARTS_ISSET_ID);
    }

    public void setMax_partsIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __MAX_PARTS_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getUser_name() {
      return this.user_name;
    }

    public void setUser_name(@org.apache.thrift.annotation.Nullable java.lang.String user_name) {
      this.user_name = user_name;
    }

    public void unsetUser_name() {
      this.user_name = null;
    }

    /** Returns true if field user_name is set (has been assigned a value) and false otherwise */
    public boolean isSetUser_name() {
      return this.user_name != null;
    }

    public void setUser_nameIsSet(boolean value) {
      if (!value) {
        this.user_name = null;
      }
    }

    public int getGroup_namesSize() {
      return (this.group_names == null) ? 0 : this.group_names.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getGroup_namesIterator() {
      return (this.group_names == null) ? null : this.group_names.iterator();
    }

    public void addToGroup_names(java.lang.String elem) {
      if (this.group_names == null) {
        this.group_names = new java.util.ArrayList<java.lang.String>();
      }
      this.group_names.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getGroup_names() {
      return this.group_names;
    }

    public void setGroup_names(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> group_names) {
      this.group_names = group_names;
    }

    public void unsetGroup_names() {
      this.group_names = null;
    }

    /** Returns true if field group_names is set (has been assigned a value) and false otherwise */
    public boolean isSetGroup_names() {
      return this.group_names != null;
    }

    public void setGroup_namesIsSet(boolean value) {
      if (!value) {
        this.group_names = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case MAX_PARTS:
        if (value == null) {
          unsetMax_parts();
        } else {
          setMax_parts((java.lang.Short)value);
        }
        break;

      case USER_NAME:
        if (value == null) {
          unsetUser_name();
        } else {
          setUser_name((java.lang.String)value);
        }
        break;

      case GROUP_NAMES:
        if (value == null) {
          unsetGroup_names();
        } else {
          setGroup_names((java.util.List<java.lang.String>)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TBL_NAME:
        return getTbl_name();

      case MAX_PARTS:
        return getMax_parts();

      case USER_NAME:
        return getUser_name();

      case GROUP_NAMES:
        return getGroup_names();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TBL_NAME:
        return isSetTbl_name();
      case MAX_PARTS:
        return isSetMax_parts();
      case USER_NAME:
        return isSetUser_name();
      case GROUP_NAMES:
        return isSetGroup_names();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_partitions_with_auth_args)
        return this.equals((get_partitions_with_auth_args)that);
      return false;
    }

    public boolean equals(get_partitions_with_auth_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_max_parts = true;
      boolean that_present_max_parts = true;
      if (this_present_max_parts || that_present_max_parts) {
        if (!(this_present_max_parts && that_present_max_parts))
          return false;
        if (this.max_parts != that.max_parts)
          return false;
      }

      boolean this_present_user_name = true && this.isSetUser_name();
      boolean that_present_user_name = true && that.isSetUser_name();
      if (this_present_user_name || that_present_user_name) {
        if (!(this_present_user_name && that_present_user_name))
          return false;
        if (!this.user_name.equals(that.user_name))
          return false;
      }

      boolean this_present_group_names = true && this.isSetGroup_names();
      boolean that_present_group_names = true && that.isSetGroup_names();
      if (this_present_group_names || that_present_group_names) {
        if (!(this_present_group_names && that_present_group_names))
          return false;
        if (!this.group_names.equals(that.group_names))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + max_parts;

      hashCode = hashCode * 8191 + ((isSetUser_name()) ? 131071 : 524287);
      if (isSetUser_name())
        hashCode = hashCode * 8191 + user_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetGroup_names()) ? 131071 : 524287);
      if (isSetGroup_names())
        hashCode = hashCode * 8191 + group_names.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_partitions_with_auth_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetMax_parts(), other.isSetMax_parts());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetMax_parts()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.max_parts, other.max_parts);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetUser_name(), other.isSetUser_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUser_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.user_name, other.user_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetGroup_names(), other.isSetGroup_names());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetGroup_names()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.group_names, other.group_names);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_partitions_with_auth_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("max_parts:");
      sb.append(this.max_parts);
      first = false;
      if (!first) sb.append(", ");
      sb.append("user_name:");
      if (this.user_name == null) {
        sb.append("null");
      } else {
        sb.append(this.user_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("group_names:");
      if (this.group_names == null) {
        sb.append("null");
      } else {
        sb.append(this.group_names);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_partitions_with_auth_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_with_auth_argsStandardScheme getScheme() {
        return new get_partitions_with_auth_argsStandardScheme();
      }
    }

    private static class get_partitions_with_auth_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_partitions_with_auth_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_partitions_with_auth_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // MAX_PARTS
              if (schemeField.type == org.apache.thrift.protocol.TType.I16) {
                struct.max_parts = iprot.readI16();
                struct.setMax_partsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // USER_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.user_name = iprot.readString();
                struct.setUser_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // GROUP_NAMES
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1214 = iprot.readListBegin();
                  struct.group_names = new java.util.ArrayList<java.lang.String>(_list1214.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem1215;
                  for (int _i1216 = 0; _i1216 < _list1214.size; ++_i1216)
                  {
                    _elem1215 = iprot.readString();
                    struct.group_names.add(_elem1215);
                  }
                  iprot.readListEnd();
                }
                struct.setGroup_namesIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_partitions_with_auth_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(MAX_PARTS_FIELD_DESC);
        oprot.writeI16(struct.max_parts);
        oprot.writeFieldEnd();
        if (struct.user_name != null) {
          oprot.writeFieldBegin(USER_NAME_FIELD_DESC);
          oprot.writeString(struct.user_name);
          oprot.writeFieldEnd();
        }
        if (struct.group_names != null) {
          oprot.writeFieldBegin(GROUP_NAMES_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.group_names.size()));
            for (java.lang.String _iter1217 : struct.group_names)
            {
              oprot.writeString(_iter1217);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_partitions_with_auth_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_with_auth_argsTupleScheme getScheme() {
        return new get_partitions_with_auth_argsTupleScheme();
      }
    }

    private static class get_partitions_with_auth_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_partitions_with_auth_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_partitions_with_auth_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetMax_parts()) {
          optionals.set(2);
        }
        if (struct.isSetUser_name()) {
          optionals.set(3);
        }
        if (struct.isSetGroup_names()) {
          optionals.set(4);
        }
        oprot.writeBitSet(optionals, 5);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetMax_parts()) {
          oprot.writeI16(struct.max_parts);
        }
        if (struct.isSetUser_name()) {
          oprot.writeString(struct.user_name);
        }
        if (struct.isSetGroup_names()) {
          {
            oprot.writeI32(struct.group_names.size());
            for (java.lang.String _iter1218 : struct.group_names)
            {
              oprot.writeString(_iter1218);
            }
          }
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_partitions_with_auth_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(5);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.max_parts = iprot.readI16();
          struct.setMax_partsIsSet(true);
        }
        if (incoming.get(3)) {
          struct.user_name = iprot.readString();
          struct.setUser_nameIsSet(true);
        }
        if (incoming.get(4)) {
          {
            org.apache.thrift.protocol.TList _list1219 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.group_names = new java.util.ArrayList<java.lang.String>(_list1219.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem1220;
            for (int _i1221 = 0; _i1221 < _list1219.size; ++_i1221)
            {
              _elem1220 = iprot.readString();
              struct.group_names.add(_elem1220);
            }
          }
          struct.setGroup_namesIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_with_auth_result implements org.apache.thrift.TBase<get_partitions_with_auth_result, get_partitions_with_auth_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_partitions_with_auth_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partitions_with_auth_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_partitions_with_auth_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_partitions_with_auth_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<Partition> success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Partition.class))));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partitions_with_auth_result.class, metaDataMap);
    }

    public get_partitions_with_auth_result() {
    }

    public get_partitions_with_auth_result(
      java.util.List<Partition> success,
      NoSuchObjectException o1,
      MetaException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_partitions_with_auth_result(get_partitions_with_auth_result other) {
      if (other.isSetSuccess()) {
        java.util.List<Partition> __this__success = new java.util.ArrayList<Partition>(other.success.size());
        for (Partition other_element : other.success) {
          __this__success.add(new Partition(other_element));
        }
        this.success = __this__success;
      }
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public get_partitions_with_auth_result deepCopy() {
      return new get_partitions_with_auth_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<Partition> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(Partition elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<Partition>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<Partition> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<Partition> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<Partition>)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_partitions_with_auth_result)
        return this.equals((get_partitions_with_auth_result)that);
      return false;
    }

    public boolean equals(get_partitions_with_auth_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_partitions_with_auth_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_partitions_with_auth_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_partitions_with_auth_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_with_auth_resultStandardScheme getScheme() {
        return new get_partitions_with_auth_resultStandardScheme();
      }
    }

    private static class get_partitions_with_auth_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_partitions_with_auth_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_partitions_with_auth_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1222 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<Partition>(_list1222.size);
                  @org.apache.thrift.annotation.Nullable Partition _elem1223;
                  for (int _i1224 = 0; _i1224 < _list1222.size; ++_i1224)
                  {
                    _elem1223 = new Partition();
                    _elem1223.read(iprot);
                    struct.success.add(_elem1223);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_partitions_with_auth_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
            for (Partition _iter1225 : struct.success)
            {
              _iter1225.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_partitions_with_auth_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_with_auth_resultTupleScheme getScheme() {
        return new get_partitions_with_auth_resultTupleScheme();
      }
    }

    private static class get_partitions_with_auth_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_partitions_with_auth_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_partitions_with_auth_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (Partition _iter1226 : struct.success)
            {
              _iter1226.write(oprot);
            }
          }
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_partitions_with_auth_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list1227 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
            struct.success = new java.util.ArrayList<Partition>(_list1227.size);
            @org.apache.thrift.annotation.Nullable Partition _elem1228;
            for (int _i1229 = 0; _i1229 < _list1227.size; ++_i1229)
            {
              _elem1228 = new Partition();
              _elem1228.read(iprot);
              struct.success.add(_elem1228);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_pspec_args implements org.apache.thrift.TBase<get_partitions_pspec_args, get_partitions_pspec_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_partitions_pspec_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partitions_pspec_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField MAX_PARTS_FIELD_DESC = new org.apache.thrift.protocol.TField("max_parts", org.apache.thrift.protocol.TType.I32, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_partitions_pspec_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_partitions_pspec_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private int max_parts; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TBL_NAME((short)2, "tbl_name"),
      MAX_PARTS((short)3, "max_parts");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // MAX_PARTS
            return MAX_PARTS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __MAX_PARTS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.MAX_PARTS, new org.apache.thrift.meta_data.FieldMetaData("max_parts", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partitions_pspec_args.class, metaDataMap);
    }

    public get_partitions_pspec_args() {
      this.max_parts = -1;

    }

    public get_partitions_pspec_args(
      java.lang.String db_name,
      java.lang.String tbl_name,
      int max_parts)
    {
      this();
      this.db_name = db_name;
      this.tbl_name = tbl_name;
      this.max_parts = max_parts;
      setMax_partsIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_partitions_pspec_args(get_partitions_pspec_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      this.max_parts = other.max_parts;
    }

    public get_partitions_pspec_args deepCopy() {
      return new get_partitions_pspec_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.tbl_name = null;
      this.max_parts = -1;

    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    public int getMax_parts() {
      return this.max_parts;
    }

    public void setMax_parts(int max_parts) {
      this.max_parts = max_parts;
      setMax_partsIsSet(true);
    }

    public void unsetMax_parts() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __MAX_PARTS_ISSET_ID);
    }

    /** Returns true if field max_parts is set (has been assigned a value) and false otherwise */
    public boolean isSetMax_parts() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __MAX_PARTS_ISSET_ID);
    }

    public void setMax_partsIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __MAX_PARTS_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case MAX_PARTS:
        if (value == null) {
          unsetMax_parts();
        } else {
          setMax_parts((java.lang.Integer)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TBL_NAME:
        return getTbl_name();

      case MAX_PARTS:
        return getMax_parts();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TBL_NAME:
        return isSetTbl_name();
      case MAX_PARTS:
        return isSetMax_parts();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_partitions_pspec_args)
        return this.equals((get_partitions_pspec_args)that);
      return false;
    }

    public boolean equals(get_partitions_pspec_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_max_parts = true;
      boolean that_present_max_parts = true;
      if (this_present_max_parts || that_present_max_parts) {
        if (!(this_present_max_parts && that_present_max_parts))
          return false;
        if (this.max_parts != that.max_parts)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + max_parts;

      return hashCode;
    }

    @Override
    public int compareTo(get_partitions_pspec_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetMax_parts(), other.isSetMax_parts());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetMax_parts()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.max_parts, other.max_parts);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_partitions_pspec_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("max_parts:");
      sb.append(this.max_parts);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_partitions_pspec_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_pspec_argsStandardScheme getScheme() {
        return new get_partitions_pspec_argsStandardScheme();
      }
    }

    private static class get_partitions_pspec_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_partitions_pspec_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_partitions_pspec_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // MAX_PARTS
              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
                struct.max_parts = iprot.readI32();
                struct.setMax_partsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_partitions_pspec_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(MAX_PARTS_FIELD_DESC);
        oprot.writeI32(struct.max_parts);
        oprot.writeFieldEnd();
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_partitions_pspec_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_pspec_argsTupleScheme getScheme() {
        return new get_partitions_pspec_argsTupleScheme();
      }
    }

    private static class get_partitions_pspec_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_partitions_pspec_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_partitions_pspec_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetMax_parts()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetMax_parts()) {
          oprot.writeI32(struct.max_parts);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_partitions_pspec_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.max_parts = iprot.readI32();
          struct.setMax_partsIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_pspec_result implements org.apache.thrift.TBase<get_partitions_pspec_result, get_partitions_pspec_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_partitions_pspec_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partitions_pspec_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_partitions_pspec_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_partitions_pspec_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<PartitionSpec> success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, PartitionSpec.class))));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partitions_pspec_result.class, metaDataMap);
    }

    public get_partitions_pspec_result() {
    }

    public get_partitions_pspec_result(
      java.util.List<PartitionSpec> success,
      NoSuchObjectException o1,
      MetaException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_partitions_pspec_result(get_partitions_pspec_result other) {
      if (other.isSetSuccess()) {
        java.util.List<PartitionSpec> __this__success = new java.util.ArrayList<PartitionSpec>(other.success.size());
        for (PartitionSpec other_element : other.success) {
          __this__success.add(new PartitionSpec(other_element));
        }
        this.success = __this__success;
      }
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public get_partitions_pspec_result deepCopy() {
      return new get_partitions_pspec_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<PartitionSpec> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(PartitionSpec elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<PartitionSpec>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<PartitionSpec> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<PartitionSpec> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<PartitionSpec>)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_partitions_pspec_result)
        return this.equals((get_partitions_pspec_result)that);
      return false;
    }

    public boolean equals(get_partitions_pspec_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_partitions_pspec_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_partitions_pspec_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_partitions_pspec_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_pspec_resultStandardScheme getScheme() {
        return new get_partitions_pspec_resultStandardScheme();
      }
    }

    private static class get_partitions_pspec_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_partitions_pspec_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_partitions_pspec_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1230 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<PartitionSpec>(_list1230.size);
                  @org.apache.thrift.annotation.Nullable PartitionSpec _elem1231;
                  for (int _i1232 = 0; _i1232 < _list1230.size; ++_i1232)
                  {
                    _elem1231 = new PartitionSpec();
                    _elem1231.read(iprot);
                    struct.success.add(_elem1231);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_partitions_pspec_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
            for (PartitionSpec _iter1233 : struct.success)
            {
              _iter1233.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_partitions_pspec_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_pspec_resultTupleScheme getScheme() {
        return new get_partitions_pspec_resultTupleScheme();
      }
    }

    private static class get_partitions_pspec_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_partitions_pspec_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_partitions_pspec_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (PartitionSpec _iter1234 : struct.success)
            {
              _iter1234.write(oprot);
            }
          }
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_partitions_pspec_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list1235 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
            struct.success = new java.util.ArrayList<PartitionSpec>(_list1235.size);
            @org.apache.thrift.annotation.Nullable PartitionSpec _elem1236;
            for (int _i1237 = 0; _i1237 < _list1235.size; ++_i1237)
            {
              _elem1236 = new PartitionSpec();
              _elem1236.read(iprot);
              struct.success.add(_elem1236);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition_names_args implements org.apache.thrift.TBase<get_partition_names_args, get_partition_names_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_partition_names_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partition_names_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField MAX_PARTS_FIELD_DESC = new org.apache.thrift.protocol.TField("max_parts", org.apache.thrift.protocol.TType.I16, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_partition_names_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_partition_names_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private short max_parts; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TBL_NAME((short)2, "tbl_name"),
      MAX_PARTS((short)3, "max_parts");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // MAX_PARTS
            return MAX_PARTS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __MAX_PARTS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.MAX_PARTS, new org.apache.thrift.meta_data.FieldMetaData("max_parts", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I16)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partition_names_args.class, metaDataMap);
    }

    public get_partition_names_args() {
      this.max_parts = (short)-1;

    }

    public get_partition_names_args(
      java.lang.String db_name,
      java.lang.String tbl_name,
      short max_parts)
    {
      this();
      this.db_name = db_name;
      this.tbl_name = tbl_name;
      this.max_parts = max_parts;
      setMax_partsIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_partition_names_args(get_partition_names_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      this.max_parts = other.max_parts;
    }

    public get_partition_names_args deepCopy() {
      return new get_partition_names_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.tbl_name = null;
      this.max_parts = (short)-1;

    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    public short getMax_parts() {
      return this.max_parts;
    }

    public void setMax_parts(short max_parts) {
      this.max_parts = max_parts;
      setMax_partsIsSet(true);
    }

    public void unsetMax_parts() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __MAX_PARTS_ISSET_ID);
    }

    /** Returns true if field max_parts is set (has been assigned a value) and false otherwise */
    public boolean isSetMax_parts() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __MAX_PARTS_ISSET_ID);
    }

    public void setMax_partsIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __MAX_PARTS_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case MAX_PARTS:
        if (value == null) {
          unsetMax_parts();
        } else {
          setMax_parts((java.lang.Short)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TBL_NAME:
        return getTbl_name();

      case MAX_PARTS:
        return getMax_parts();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TBL_NAME:
        return isSetTbl_name();
      case MAX_PARTS:
        return isSetMax_parts();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_partition_names_args)
        return this.equals((get_partition_names_args)that);
      return false;
    }

    public boolean equals(get_partition_names_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_max_parts = true;
      boolean that_present_max_parts = true;
      if (this_present_max_parts || that_present_max_parts) {
        if (!(this_present_max_parts && that_present_max_parts))
          return false;
        if (this.max_parts != that.max_parts)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + max_parts;

      return hashCode;
    }

    @Override
    public int compareTo(get_partition_names_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetMax_parts(), other.isSetMax_parts());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetMax_parts()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.max_parts, other.max_parts);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_partition_names_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("max_parts:");
      sb.append(this.max_parts);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_partition_names_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partition_names_argsStandardScheme getScheme() {
        return new get_partition_names_argsStandardScheme();
      }
    }

    private static class get_partition_names_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_partition_names_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_partition_names_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // MAX_PARTS
              if (schemeField.type == org.apache.thrift.protocol.TType.I16) {
                struct.max_parts = iprot.readI16();
                struct.setMax_partsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_partition_names_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(MAX_PARTS_FIELD_DESC);
        oprot.writeI16(struct.max_parts);
        oprot.writeFieldEnd();
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_partition_names_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partition_names_argsTupleScheme getScheme() {
        return new get_partition_names_argsTupleScheme();
      }
    }

    private static class get_partition_names_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_partition_names_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_partition_names_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetMax_parts()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetMax_parts()) {
          oprot.writeI16(struct.max_parts);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_partition_names_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.max_parts = iprot.readI16();
          struct.setMax_partsIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition_names_result implements org.apache.thrift.TBase<get_partition_names_result, get_partition_names_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_partition_names_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partition_names_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_partition_names_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_partition_names_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partition_names_result.class, metaDataMap);
    }

    public get_partition_names_result() {
    }

    public get_partition_names_result(
      java.util.List<java.lang.String> success,
      NoSuchObjectException o1,
      MetaException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_partition_names_result(get_partition_names_result other) {
      if (other.isSetSuccess()) {
        java.util.List<java.lang.String> __this__success = new java.util.ArrayList<java.lang.String>(other.success);
        this.success = __this__success;
      }
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public get_partition_names_result deepCopy() {
      return new get_partition_names_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(java.lang.String elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<java.lang.String>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<java.lang.String>)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_partition_names_result)
        return this.equals((get_partition_names_result)that);
      return false;
    }

    public boolean equals(get_partition_names_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_partition_names_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_partition_names_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_partition_names_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partition_names_resultStandardScheme getScheme() {
        return new get_partition_names_resultStandardScheme();
      }
    }

    private static class get_partition_names_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_partition_names_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_partition_names_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1238 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<java.lang.String>(_list1238.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem1239;
                  for (int _i1240 = 0; _i1240 < _list1238.size; ++_i1240)
                  {
                    _elem1239 = iprot.readString();
                    struct.success.add(_elem1239);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_partition_names_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.success.size()));
            for (java.lang.String _iter1241 : struct.success)
            {
              oprot.writeString(_iter1241);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_partition_names_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partition_names_resultTupleScheme getScheme() {
        return new get_partition_names_resultTupleScheme();
      }
    }

    private static class get_partition_names_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_partition_names_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_partition_names_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (java.lang.String _iter1242 : struct.success)
            {
              oprot.writeString(_iter1242);
            }
          }
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_partition_names_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list1243 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.success = new java.util.ArrayList<java.lang.String>(_list1243.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem1244;
            for (int _i1245 = 0; _i1245 < _list1243.size; ++_i1245)
            {
              _elem1244 = iprot.readString();
              struct.success.add(_elem1244);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition_values_args implements org.apache.thrift.TBase<get_partition_values_args, get_partition_values_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_partition_values_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partition_values_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_partition_values_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_partition_values_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable PartitionValuesRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, PartitionValuesRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partition_values_args.class, metaDataMap);
    }

    public get_partition_values_args() {
    }

    public get_partition_values_args(
      PartitionValuesRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_partition_values_args(get_partition_values_args other) {
      if (other.isSetRequest()) {
        this.request = new PartitionValuesRequest(other.request);
      }
    }

    public get_partition_values_args deepCopy() {
      return new get_partition_values_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    @org.apache.thrift.annotation.Nullable
    public PartitionValuesRequest getRequest() {
      return this.request;
    }

    public void setRequest(@org.apache.thrift.annotation.Nullable PartitionValuesRequest request) {
      this.request = request;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((PartitionValuesRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_partition_values_args)
        return this.equals((get_partition_values_args)that);
      return false;
    }

    public boolean equals(get_partition_values_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRequest()) ? 131071 : 524287);
      if (isSetRequest())
        hashCode = hashCode * 8191 + request.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_partition_values_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRequest(), other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_partition_values_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_partition_values_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partition_values_argsStandardScheme getScheme() {
        return new get_partition_values_argsStandardScheme();
      }
    }

    private static class get_partition_values_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_partition_values_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_partition_values_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new PartitionValuesRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_partition_values_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_partition_values_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partition_values_argsTupleScheme getScheme() {
        return new get_partition_values_argsTupleScheme();
      }
    }

    private static class get_partition_values_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_partition_values_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_partition_values_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_partition_values_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new PartitionValuesRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition_values_result implements org.apache.thrift.TBase<get_partition_values_result, get_partition_values_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_partition_values_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partition_values_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_partition_values_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_partition_values_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable PartitionValuesResponse success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, PartitionValuesResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partition_values_result.class, metaDataMap);
    }

    public get_partition_values_result() {
    }

    public get_partition_values_result(
      PartitionValuesResponse success,
      MetaException o1,
      NoSuchObjectException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_partition_values_result(get_partition_values_result other) {
      if (other.isSetSuccess()) {
        this.success = new PartitionValuesResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchObjectException(other.o2);
      }
    }

    public get_partition_values_result deepCopy() {
      return new get_partition_values_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public PartitionValuesResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable PartitionValuesResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((PartitionValuesResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchObjectException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_partition_values_result)
        return this.equals((get_partition_values_result)that);
      return false;
    }

    public boolean equals(get_partition_values_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_partition_values_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_partition_values_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_partition_values_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partition_values_resultStandardScheme getScheme() {
        return new get_partition_values_resultStandardScheme();
      }
    }

    private static class get_partition_values_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_partition_values_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_partition_values_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new PartitionValuesResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_partition_values_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_partition_values_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partition_values_resultTupleScheme getScheme() {
        return new get_partition_values_resultTupleScheme();
      }
    }

    private static class get_partition_values_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_partition_values_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_partition_values_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_partition_values_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = new PartitionValuesResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new NoSuchObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_ps_args implements org.apache.thrift.TBase<get_partitions_ps_args, get_partitions_ps_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_partitions_ps_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partitions_ps_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField PART_VALS_FIELD_DESC = new org.apache.thrift.protocol.TField("part_vals", org.apache.thrift.protocol.TType.LIST, (short)3);
    private static final org.apache.thrift.protocol.TField MAX_PARTS_FIELD_DESC = new org.apache.thrift.protocol.TField("max_parts", org.apache.thrift.protocol.TType.I16, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_partitions_ps_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_partitions_ps_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> part_vals; // required
    private short max_parts; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TBL_NAME((short)2, "tbl_name"),
      PART_VALS((short)3, "part_vals"),
      MAX_PARTS((short)4, "max_parts");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // PART_VALS
            return PART_VALS;
          case 4: // MAX_PARTS
            return MAX_PARTS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __MAX_PARTS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PART_VALS, new org.apache.thrift.meta_data.FieldMetaData("part_vals", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      tmpMap.put(_Fields.MAX_PARTS, new org.apache.thrift.meta_data.FieldMetaData("max_parts", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I16)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partitions_ps_args.class, metaDataMap);
    }

    public get_partitions_ps_args() {
      this.max_parts = (short)-1;

    }

    public get_partitions_ps_args(
      java.lang.String db_name,
      java.lang.String tbl_name,
      java.util.List<java.lang.String> part_vals,
      short max_parts)
    {
      this();
      this.db_name = db_name;
      this.tbl_name = tbl_name;
      this.part_vals = part_vals;
      this.max_parts = max_parts;
      setMax_partsIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_partitions_ps_args(get_partitions_ps_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      if (other.isSetPart_vals()) {
        java.util.List<java.lang.String> __this__part_vals = new java.util.ArrayList<java.lang.String>(other.part_vals);
        this.part_vals = __this__part_vals;
      }
      this.max_parts = other.max_parts;
    }

    public get_partitions_ps_args deepCopy() {
      return new get_partitions_ps_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.tbl_name = null;
      this.part_vals = null;
      this.max_parts = (short)-1;

    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    public int getPart_valsSize() {
      return (this.part_vals == null) ? 0 : this.part_vals.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getPart_valsIterator() {
      return (this.part_vals == null) ? null : this.part_vals.iterator();
    }

    public void addToPart_vals(java.lang.String elem) {
      if (this.part_vals == null) {
        this.part_vals = new java.util.ArrayList<java.lang.String>();
      }
      this.part_vals.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getPart_vals() {
      return this.part_vals;
    }

    public void setPart_vals(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> part_vals) {
      this.part_vals = part_vals;
    }

    public void unsetPart_vals() {
      this.part_vals = null;
    }

    /** Returns true if field part_vals is set (has been assigned a value) and false otherwise */
    public boolean isSetPart_vals() {
      return this.part_vals != null;
    }

    public void setPart_valsIsSet(boolean value) {
      if (!value) {
        this.part_vals = null;
      }
    }

    public short getMax_parts() {
      return this.max_parts;
    }

    public void setMax_parts(short max_parts) {
      this.max_parts = max_parts;
      setMax_partsIsSet(true);
    }

    public void unsetMax_parts() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __MAX_PARTS_ISSET_ID);
    }

    /** Returns true if field max_parts is set (has been assigned a value) and false otherwise */
    public boolean isSetMax_parts() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __MAX_PARTS_ISSET_ID);
    }

    public void setMax_partsIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __MAX_PARTS_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case PART_VALS:
        if (value == null) {
          unsetPart_vals();
        } else {
          setPart_vals((java.util.List<java.lang.String>)value);
        }
        break;

      case MAX_PARTS:
        if (value == null) {
          unsetMax_parts();
        } else {
          setMax_parts((java.lang.Short)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TBL_NAME:
        return getTbl_name();

      case PART_VALS:
        return getPart_vals();

      case MAX_PARTS:
        return getMax_parts();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TBL_NAME:
        return isSetTbl_name();
      case PART_VALS:
        return isSetPart_vals();
      case MAX_PARTS:
        return isSetMax_parts();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_partitions_ps_args)
        return this.equals((get_partitions_ps_args)that);
      return false;
    }

    public boolean equals(get_partitions_ps_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_part_vals = true && this.isSetPart_vals();
      boolean that_present_part_vals = true && that.isSetPart_vals();
      if (this_present_part_vals || that_present_part_vals) {
        if (!(this_present_part_vals && that_present_part_vals))
          return false;
        if (!this.part_vals.equals(that.part_vals))
          return false;
      }

      boolean this_present_max_parts = true;
      boolean that_present_max_parts = true;
      if (this_present_max_parts || that_present_max_parts) {
        if (!(this_present_max_parts && that_present_max_parts))
          return false;
        if (this.max_parts != that.max_parts)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetPart_vals()) ? 131071 : 524287);
      if (isSetPart_vals())
        hashCode = hashCode * 8191 + part_vals.hashCode();

      hashCode = hashCode * 8191 + max_parts;

      return hashCode;
    }

    @Override
    public int compareTo(get_partitions_ps_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetPart_vals(), other.isSetPart_vals());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPart_vals()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.part_vals, other.part_vals);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetMax_parts(), other.isSetMax_parts());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetMax_parts()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.max_parts, other.max_parts);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_partitions_ps_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("part_vals:");
      if (this.part_vals == null) {
        sb.append("null");
      } else {
        sb.append(this.part_vals);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("max_parts:");
      sb.append(this.max_parts);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_partitions_ps_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_ps_argsStandardScheme getScheme() {
        return new get_partitions_ps_argsStandardScheme();
      }
    }

    private static class get_partitions_ps_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_partitions_ps_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_partitions_ps_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // PART_VALS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1246 = iprot.readListBegin();
                  struct.part_vals = new java.util.ArrayList<java.lang.String>(_list1246.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem1247;
                  for (int _i1248 = 0; _i1248 < _list1246.size; ++_i1248)
                  {
                    _elem1247 = iprot.readString();
                    struct.part_vals.add(_elem1247);
                  }
                  iprot.readListEnd();
                }
                struct.setPart_valsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // MAX_PARTS
              if (schemeField.type == org.apache.thrift.protocol.TType.I16) {
                struct.max_parts = iprot.readI16();
                struct.setMax_partsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_partitions_ps_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        if (struct.part_vals != null) {
          oprot.writeFieldBegin(PART_VALS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.part_vals.size()));
            for (java.lang.String _iter1249 : struct.part_vals)
            {
              oprot.writeString(_iter1249);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(MAX_PARTS_FIELD_DESC);
        oprot.writeI16(struct.max_parts);
        oprot.writeFieldEnd();
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_partitions_ps_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_ps_argsTupleScheme getScheme() {
        return new get_partitions_ps_argsTupleScheme();
      }
    }

    private static class get_partitions_ps_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_partitions_ps_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_partitions_ps_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetPart_vals()) {
          optionals.set(2);
        }
        if (struct.isSetMax_parts()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetPart_vals()) {
          {
            oprot.writeI32(struct.part_vals.size());
            for (java.lang.String _iter1250 : struct.part_vals)
            {
              oprot.writeString(_iter1250);
            }
          }
        }
        if (struct.isSetMax_parts()) {
          oprot.writeI16(struct.max_parts);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_partitions_ps_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          {
            org.apache.thrift.protocol.TList _list1251 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.part_vals = new java.util.ArrayList<java.lang.String>(_list1251.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem1252;
            for (int _i1253 = 0; _i1253 < _list1251.size; ++_i1253)
            {
              _elem1252 = iprot.readString();
              struct.part_vals.add(_elem1252);
            }
          }
          struct.setPart_valsIsSet(true);
        }
        if (incoming.get(3)) {
          struct.max_parts = iprot.readI16();
          struct.setMax_partsIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_ps_result implements org.apache.thrift.TBase<get_partitions_ps_result, get_partitions_ps_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_partitions_ps_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partitions_ps_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_partitions_ps_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_partitions_ps_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<Partition> success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Partition.class))));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partitions_ps_result.class, metaDataMap);
    }

    public get_partitions_ps_result() {
    }

    public get_partitions_ps_result(
      java.util.List<Partition> success,
      MetaException o1,
      NoSuchObjectException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_partitions_ps_result(get_partitions_ps_result other) {
      if (other.isSetSuccess()) {
        java.util.List<Partition> __this__success = new java.util.ArrayList<Partition>(other.success.size());
        for (Partition other_element : other.success) {
          __this__success.add(new Partition(other_element));
        }
        this.success = __this__success;
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchObjectException(other.o2);
      }
    }

    public get_partitions_ps_result deepCopy() {
      return new get_partitions_ps_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<Partition> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(Partition elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<Partition>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<Partition> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<Partition> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<Partition>)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchObjectException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_partitions_ps_result)
        return this.equals((get_partitions_ps_result)that);
      return false;
    }

    public boolean equals(get_partitions_ps_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_partitions_ps_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_partitions_ps_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_partitions_ps_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_ps_resultStandardScheme getScheme() {
        return new get_partitions_ps_resultStandardScheme();
      }
    }

    private static class get_partitions_ps_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_partitions_ps_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_partitions_ps_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1254 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<Partition>(_list1254.size);
                  @org.apache.thrift.annotation.Nullable Partition _elem1255;
                  for (int _i1256 = 0; _i1256 < _list1254.size; ++_i1256)
                  {
                    _elem1255 = new Partition();
                    _elem1255.read(iprot);
                    struct.success.add(_elem1255);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_partitions_ps_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
            for (Partition _iter1257 : struct.success)
            {
              _iter1257.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_partitions_ps_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_ps_resultTupleScheme getScheme() {
        return new get_partitions_ps_resultTupleScheme();
      }
    }

    private static class get_partitions_ps_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_partitions_ps_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_partitions_ps_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (Partition _iter1258 : struct.success)
            {
              _iter1258.write(oprot);
            }
          }
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_partitions_ps_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list1259 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
            struct.success = new java.util.ArrayList<Partition>(_list1259.size);
            @org.apache.thrift.annotation.Nullable Partition _elem1260;
            for (int _i1261 = 0; _i1261 < _list1259.size; ++_i1261)
            {
              _elem1260 = new Partition();
              _elem1260.read(iprot);
              struct.success.add(_elem1260);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new NoSuchObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_ps_with_auth_args implements org.apache.thrift.TBase<get_partitions_ps_with_auth_args, get_partitions_ps_with_auth_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_partitions_ps_with_auth_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partitions_ps_with_auth_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField PART_VALS_FIELD_DESC = new org.apache.thrift.protocol.TField("part_vals", org.apache.thrift.protocol.TType.LIST, (short)3);
    private static final org.apache.thrift.protocol.TField MAX_PARTS_FIELD_DESC = new org.apache.thrift.protocol.TField("max_parts", org.apache.thrift.protocol.TType.I16, (short)4);
    private static final org.apache.thrift.protocol.TField USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("user_name", org.apache.thrift.protocol.TType.STRING, (short)5);
    private static final org.apache.thrift.protocol.TField GROUP_NAMES_FIELD_DESC = new org.apache.thrift.protocol.TField("group_names", org.apache.thrift.protocol.TType.LIST, (short)6);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_partitions_ps_with_auth_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_partitions_ps_with_auth_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> part_vals; // required
    private short max_parts; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String user_name; // required
    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> group_names; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TBL_NAME((short)2, "tbl_name"),
      PART_VALS((short)3, "part_vals"),
      MAX_PARTS((short)4, "max_parts"),
      USER_NAME((short)5, "user_name"),
      GROUP_NAMES((short)6, "group_names");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // PART_VALS
            return PART_VALS;
          case 4: // MAX_PARTS
            return MAX_PARTS;
          case 5: // USER_NAME
            return USER_NAME;
          case 6: // GROUP_NAMES
            return GROUP_NAMES;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __MAX_PARTS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PART_VALS, new org.apache.thrift.meta_data.FieldMetaData("part_vals", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      tmpMap.put(_Fields.MAX_PARTS, new org.apache.thrift.meta_data.FieldMetaData("max_parts", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I16)));
      tmpMap.put(_Fields.USER_NAME, new org.apache.thrift.meta_data.FieldMetaData("user_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.GROUP_NAMES, new org.apache.thrift.meta_data.FieldMetaData("group_names", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partitions_ps_with_auth_args.class, metaDataMap);
    }

    public get_partitions_ps_with_auth_args() {
      this.max_parts = (short)-1;

    }

    public get_partitions_ps_with_auth_args(
      java.lang.String db_name,
      java.lang.String tbl_name,
      java.util.List<java.lang.String> part_vals,
      short max_parts,
      java.lang.String user_name,
      java.util.List<java.lang.String> group_names)
    {
      this();
      this.db_name = db_name;
      this.tbl_name = tbl_name;
      this.part_vals = part_vals;
      this.max_parts = max_parts;
      setMax_partsIsSet(true);
      this.user_name = user_name;
      this.group_names = group_names;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_partitions_ps_with_auth_args(get_partitions_ps_with_auth_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      if (other.isSetPart_vals()) {
        java.util.List<java.lang.String> __this__part_vals = new java.util.ArrayList<java.lang.String>(other.part_vals);
        this.part_vals = __this__part_vals;
      }
      this.max_parts = other.max_parts;
      if (other.isSetUser_name()) {
        this.user_name = other.user_name;
      }
      if (other.isSetGroup_names()) {
        java.util.List<java.lang.String> __this__group_names = new java.util.ArrayList<java.lang.String>(other.group_names);
        this.group_names = __this__group_names;
      }
    }

    public get_partitions_ps_with_auth_args deepCopy() {
      return new get_partitions_ps_with_auth_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.tbl_name = null;
      this.part_vals = null;
      this.max_parts = (short)-1;

      this.user_name = null;
      this.group_names = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    public int getPart_valsSize() {
      return (this.part_vals == null) ? 0 : this.part_vals.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getPart_valsIterator() {
      return (this.part_vals == null) ? null : this.part_vals.iterator();
    }

    public void addToPart_vals(java.lang.String elem) {
      if (this.part_vals == null) {
        this.part_vals = new java.util.ArrayList<java.lang.String>();
      }
      this.part_vals.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getPart_vals() {
      return this.part_vals;
    }

    public void setPart_vals(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> part_vals) {
      this.part_vals = part_vals;
    }

    public void unsetPart_vals() {
      this.part_vals = null;
    }

    /** Returns true if field part_vals is set (has been assigned a value) and false otherwise */
    public boolean isSetPart_vals() {
      return this.part_vals != null;
    }

    public void setPart_valsIsSet(boolean value) {
      if (!value) {
        this.part_vals = null;
      }
    }

    public short getMax_parts() {
      return this.max_parts;
    }

    public void setMax_parts(short max_parts) {
      this.max_parts = max_parts;
      setMax_partsIsSet(true);
    }

    public void unsetMax_parts() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __MAX_PARTS_ISSET_ID);
    }

    /** Returns true if field max_parts is set (has been assigned a value) and false otherwise */
    public boolean isSetMax_parts() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __MAX_PARTS_ISSET_ID);
    }

    public void setMax_partsIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __MAX_PARTS_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getUser_name() {
      return this.user_name;
    }

    public void setUser_name(@org.apache.thrift.annotation.Nullable java.lang.String user_name) {
      this.user_name = user_name;
    }

    public void unsetUser_name() {
      this.user_name = null;
    }

    /** Returns true if field user_name is set (has been assigned a value) and false otherwise */
    public boolean isSetUser_name() {
      return this.user_name != null;
    }

    public void setUser_nameIsSet(boolean value) {
      if (!value) {
        this.user_name = null;
      }
    }

    public int getGroup_namesSize() {
      return (this.group_names == null) ? 0 : this.group_names.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getGroup_namesIterator() {
      return (this.group_names == null) ? null : this.group_names.iterator();
    }

    public void addToGroup_names(java.lang.String elem) {
      if (this.group_names == null) {
        this.group_names = new java.util.ArrayList<java.lang.String>();
      }
      this.group_names.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getGroup_names() {
      return this.group_names;
    }

    public void setGroup_names(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> group_names) {
      this.group_names = group_names;
    }

    public void unsetGroup_names() {
      this.group_names = null;
    }

    /** Returns true if field group_names is set (has been assigned a value) and false otherwise */
    public boolean isSetGroup_names() {
      return this.group_names != null;
    }

    public void setGroup_namesIsSet(boolean value) {
      if (!value) {
        this.group_names = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case PART_VALS:
        if (value == null) {
          unsetPart_vals();
        } else {
          setPart_vals((java.util.List<java.lang.String>)value);
        }
        break;

      case MAX_PARTS:
        if (value == null) {
          unsetMax_parts();
        } else {
          setMax_parts((java.lang.Short)value);
        }
        break;

      case USER_NAME:
        if (value == null) {
          unsetUser_name();
        } else {
          setUser_name((java.lang.String)value);
        }
        break;

      case GROUP_NAMES:
        if (value == null) {
          unsetGroup_names();
        } else {
          setGroup_names((java.util.List<java.lang.String>)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TBL_NAME:
        return getTbl_name();

      case PART_VALS:
        return getPart_vals();

      case MAX_PARTS:
        return getMax_parts();

      case USER_NAME:
        return getUser_name();

      case GROUP_NAMES:
        return getGroup_names();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TBL_NAME:
        return isSetTbl_name();
      case PART_VALS:
        return isSetPart_vals();
      case MAX_PARTS:
        return isSetMax_parts();
      case USER_NAME:
        return isSetUser_name();
      case GROUP_NAMES:
        return isSetGroup_names();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_partitions_ps_with_auth_args)
        return this.equals((get_partitions_ps_with_auth_args)that);
      return false;
    }

    public boolean equals(get_partitions_ps_with_auth_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_part_vals = true && this.isSetPart_vals();
      boolean that_present_part_vals = true && that.isSetPart_vals();
      if (this_present_part_vals || that_present_part_vals) {
        if (!(this_present_part_vals && that_present_part_vals))
          return false;
        if (!this.part_vals.equals(that.part_vals))
          return false;
      }

      boolean this_present_max_parts = true;
      boolean that_present_max_parts = true;
      if (this_present_max_parts || that_present_max_parts) {
        if (!(this_present_max_parts && that_present_max_parts))
          return false;
        if (this.max_parts != that.max_parts)
          return false;
      }

      boolean this_present_user_name = true && this.isSetUser_name();
      boolean that_present_user_name = true && that.isSetUser_name();
      if (this_present_user_name || that_present_user_name) {
        if (!(this_present_user_name && that_present_user_name))
          return false;
        if (!this.user_name.equals(that.user_name))
          return false;
      }

      boolean this_present_group_names = true && this.isSetGroup_names();
      boolean that_present_group_names = true && that.isSetGroup_names();
      if (this_present_group_names || that_present_group_names) {
        if (!(this_present_group_names && that_present_group_names))
          return false;
        if (!this.group_names.equals(that.group_names))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetPart_vals()) ? 131071 : 524287);
      if (isSetPart_vals())
        hashCode = hashCode * 8191 + part_vals.hashCode();

      hashCode = hashCode * 8191 + max_parts;

      hashCode = hashCode * 8191 + ((isSetUser_name()) ? 131071 : 524287);
      if (isSetUser_name())
        hashCode = hashCode * 8191 + user_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetGroup_names()) ? 131071 : 524287);
      if (isSetGroup_names())
        hashCode = hashCode * 8191 + group_names.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_partitions_ps_with_auth_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetPart_vals(), other.isSetPart_vals());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPart_vals()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.part_vals, other.part_vals);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetMax_parts(), other.isSetMax_parts());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetMax_parts()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.max_parts, other.max_parts);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetUser_name(), other.isSetUser_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUser_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.user_name, other.user_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetGroup_names(), other.isSetGroup_names());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetGroup_names()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.group_names, other.group_names);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_partitions_ps_with_auth_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("part_vals:");
      if (this.part_vals == null) {
        sb.append("null");
      } else {
        sb.append(this.part_vals);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("max_parts:");
      sb.append(this.max_parts);
      first = false;
      if (!first) sb.append(", ");
      sb.append("user_name:");
      if (this.user_name == null) {
        sb.append("null");
      } else {
        sb.append(this.user_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("group_names:");
      if (this.group_names == null) {
        sb.append("null");
      } else {
        sb.append(this.group_names);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_partitions_ps_with_auth_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_ps_with_auth_argsStandardScheme getScheme() {
        return new get_partitions_ps_with_auth_argsStandardScheme();
      }
    }

    private static class get_partitions_ps_with_auth_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_partitions_ps_with_auth_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_partitions_ps_with_auth_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // PART_VALS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1262 = iprot.readListBegin();
                  struct.part_vals = new java.util.ArrayList<java.lang.String>(_list1262.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem1263;
                  for (int _i1264 = 0; _i1264 < _list1262.size; ++_i1264)
                  {
                    _elem1263 = iprot.readString();
                    struct.part_vals.add(_elem1263);
                  }
                  iprot.readListEnd();
                }
                struct.setPart_valsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // MAX_PARTS
              if (schemeField.type == org.apache.thrift.protocol.TType.I16) {
                struct.max_parts = iprot.readI16();
                struct.setMax_partsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // USER_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.user_name = iprot.readString();
                struct.setUser_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 6: // GROUP_NAMES
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1265 = iprot.readListBegin();
                  struct.group_names = new java.util.ArrayList<java.lang.String>(_list1265.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem1266;
                  for (int _i1267 = 0; _i1267 < _list1265.size; ++_i1267)
                  {
                    _elem1266 = iprot.readString();
                    struct.group_names.add(_elem1266);
                  }
                  iprot.readListEnd();
                }
                struct.setGroup_namesIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_partitions_ps_with_auth_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        if (struct.part_vals != null) {
          oprot.writeFieldBegin(PART_VALS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.part_vals.size()));
            for (java.lang.String _iter1268 : struct.part_vals)
            {
              oprot.writeString(_iter1268);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(MAX_PARTS_FIELD_DESC);
        oprot.writeI16(struct.max_parts);
        oprot.writeFieldEnd();
        if (struct.user_name != null) {
          oprot.writeFieldBegin(USER_NAME_FIELD_DESC);
          oprot.writeString(struct.user_name);
          oprot.writeFieldEnd();
        }
        if (struct.group_names != null) {
          oprot.writeFieldBegin(GROUP_NAMES_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.group_names.size()));
            for (java.lang.String _iter1269 : struct.group_names)
            {
              oprot.writeString(_iter1269);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_partitions_ps_with_auth_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_ps_with_auth_argsTupleScheme getScheme() {
        return new get_partitions_ps_with_auth_argsTupleScheme();
      }
    }

    private static class get_partitions_ps_with_auth_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_partitions_ps_with_auth_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_partitions_ps_with_auth_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetPart_vals()) {
          optionals.set(2);
        }
        if (struct.isSetMax_parts()) {
          optionals.set(3);
        }
        if (struct.isSetUser_name()) {
          optionals.set(4);
        }
        if (struct.isSetGroup_names()) {
          optionals.set(5);
        }
        oprot.writeBitSet(optionals, 6);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetPart_vals()) {
          {
            oprot.writeI32(struct.part_vals.size());
            for (java.lang.String _iter1270 : struct.part_vals)
            {
              oprot.writeString(_iter1270);
            }
          }
        }
        if (struct.isSetMax_parts()) {
          oprot.writeI16(struct.max_parts);
        }
        if (struct.isSetUser_name()) {
          oprot.writeString(struct.user_name);
        }
        if (struct.isSetGroup_names()) {
          {
            oprot.writeI32(struct.group_names.size());
            for (java.lang.String _iter1271 : struct.group_names)
            {
              oprot.writeString(_iter1271);
            }
          }
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_partitions_ps_with_auth_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(6);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          {
            org.apache.thrift.protocol.TList _list1272 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.part_vals = new java.util.ArrayList<java.lang.String>(_list1272.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem1273;
            for (int _i1274 = 0; _i1274 < _list1272.size; ++_i1274)
            {
              _elem1273 = iprot.readString();
              struct.part_vals.add(_elem1273);
            }
          }
          struct.setPart_valsIsSet(true);
        }
        if (incoming.get(3)) {
          struct.max_parts = iprot.readI16();
          struct.setMax_partsIsSet(true);
        }
        if (incoming.get(4)) {
          struct.user_name = iprot.readString();
          struct.setUser_nameIsSet(true);
        }
        if (incoming.get(5)) {
          {
            org.apache.thrift.protocol.TList _list1275 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.group_names = new java.util.ArrayList<java.lang.String>(_list1275.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem1276;
            for (int _i1277 = 0; _i1277 < _list1275.size; ++_i1277)
            {
              _elem1276 = iprot.readString();
              struct.group_names.add(_elem1276);
            }
          }
          struct.setGroup_namesIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_ps_with_auth_result implements org.apache.thrift.TBase<get_partitions_ps_with_auth_result, get_partitions_ps_with_auth_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_partitions_ps_with_auth_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partitions_ps_with_auth_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_partitions_ps_with_auth_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_partitions_ps_with_auth_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<Partition> success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Partition.class))));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partitions_ps_with_auth_result.class, metaDataMap);
    }

    public get_partitions_ps_with_auth_result() {
    }

    public get_partitions_ps_with_auth_result(
      java.util.List<Partition> success,
      NoSuchObjectException o1,
      MetaException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_partitions_ps_with_auth_result(get_partitions_ps_with_auth_result other) {
      if (other.isSetSuccess()) {
        java.util.List<Partition> __this__success = new java.util.ArrayList<Partition>(other.success.size());
        for (Partition other_element : other.success) {
          __this__success.add(new Partition(other_element));
        }
        this.success = __this__success;
      }
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public get_partitions_ps_with_auth_result deepCopy() {
      return new get_partitions_ps_with_auth_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<Partition> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(Partition elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<Partition>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<Partition> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<Partition> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<Partition>)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_partitions_ps_with_auth_result)
        return this.equals((get_partitions_ps_with_auth_result)that);
      return false;
    }

    public boolean equals(get_partitions_ps_with_auth_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_partitions_ps_with_auth_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_partitions_ps_with_auth_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_partitions_ps_with_auth_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_ps_with_auth_resultStandardScheme getScheme() {
        return new get_partitions_ps_with_auth_resultStandardScheme();
      }
    }

    private static class get_partitions_ps_with_auth_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_partitions_ps_with_auth_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_partitions_ps_with_auth_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1278 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<Partition>(_list1278.size);
                  @org.apache.thrift.annotation.Nullable Partition _elem1279;
                  for (int _i1280 = 0; _i1280 < _list1278.size; ++_i1280)
                  {
                    _elem1279 = new Partition();
                    _elem1279.read(iprot);
                    struct.success.add(_elem1279);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_partitions_ps_with_auth_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
            for (Partition _iter1281 : struct.success)
            {
              _iter1281.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_partitions_ps_with_auth_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_ps_with_auth_resultTupleScheme getScheme() {
        return new get_partitions_ps_with_auth_resultTupleScheme();
      }
    }

    private static class get_partitions_ps_with_auth_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_partitions_ps_with_auth_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_partitions_ps_with_auth_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (Partition _iter1282 : struct.success)
            {
              _iter1282.write(oprot);
            }
          }
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_partitions_ps_with_auth_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list1283 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
            struct.success = new java.util.ArrayList<Partition>(_list1283.size);
            @org.apache.thrift.annotation.Nullable Partition _elem1284;
            for (int _i1285 = 0; _i1285 < _list1283.size; ++_i1285)
            {
              _elem1284 = new Partition();
              _elem1284.read(iprot);
              struct.success.add(_elem1284);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition_names_ps_args implements org.apache.thrift.TBase<get_partition_names_ps_args, get_partition_names_ps_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_partition_names_ps_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partition_names_ps_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField PART_VALS_FIELD_DESC = new org.apache.thrift.protocol.TField("part_vals", org.apache.thrift.protocol.TType.LIST, (short)3);
    private static final org.apache.thrift.protocol.TField MAX_PARTS_FIELD_DESC = new org.apache.thrift.protocol.TField("max_parts", org.apache.thrift.protocol.TType.I16, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_partition_names_ps_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_partition_names_ps_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> part_vals; // required
    private short max_parts; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TBL_NAME((short)2, "tbl_name"),
      PART_VALS((short)3, "part_vals"),
      MAX_PARTS((short)4, "max_parts");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // PART_VALS
            return PART_VALS;
          case 4: // MAX_PARTS
            return MAX_PARTS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __MAX_PARTS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PART_VALS, new org.apache.thrift.meta_data.FieldMetaData("part_vals", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      tmpMap.put(_Fields.MAX_PARTS, new org.apache.thrift.meta_data.FieldMetaData("max_parts", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I16)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partition_names_ps_args.class, metaDataMap);
    }

    public get_partition_names_ps_args() {
      this.max_parts = (short)-1;

    }

    public get_partition_names_ps_args(
      java.lang.String db_name,
      java.lang.String tbl_name,
      java.util.List<java.lang.String> part_vals,
      short max_parts)
    {
      this();
      this.db_name = db_name;
      this.tbl_name = tbl_name;
      this.part_vals = part_vals;
      this.max_parts = max_parts;
      setMax_partsIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_partition_names_ps_args(get_partition_names_ps_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      if (other.isSetPart_vals()) {
        java.util.List<java.lang.String> __this__part_vals = new java.util.ArrayList<java.lang.String>(other.part_vals);
        this.part_vals = __this__part_vals;
      }
      this.max_parts = other.max_parts;
    }

    public get_partition_names_ps_args deepCopy() {
      return new get_partition_names_ps_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.tbl_name = null;
      this.part_vals = null;
      this.max_parts = (short)-1;

    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    public int getPart_valsSize() {
      return (this.part_vals == null) ? 0 : this.part_vals.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getPart_valsIterator() {
      return (this.part_vals == null) ? null : this.part_vals.iterator();
    }

    public void addToPart_vals(java.lang.String elem) {
      if (this.part_vals == null) {
        this.part_vals = new java.util.ArrayList<java.lang.String>();
      }
      this.part_vals.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getPart_vals() {
      return this.part_vals;
    }

    public void setPart_vals(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> part_vals) {
      this.part_vals = part_vals;
    }

    public void unsetPart_vals() {
      this.part_vals = null;
    }

    /** Returns true if field part_vals is set (has been assigned a value) and false otherwise */
    public boolean isSetPart_vals() {
      return this.part_vals != null;
    }

    public void setPart_valsIsSet(boolean value) {
      if (!value) {
        this.part_vals = null;
      }
    }

    public short getMax_parts() {
      return this.max_parts;
    }

    public void setMax_parts(short max_parts) {
      this.max_parts = max_parts;
      setMax_partsIsSet(true);
    }

    public void unsetMax_parts() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __MAX_PARTS_ISSET_ID);
    }

    /** Returns true if field max_parts is set (has been assigned a value) and false otherwise */
    public boolean isSetMax_parts() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __MAX_PARTS_ISSET_ID);
    }

    public void setMax_partsIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __MAX_PARTS_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case PART_VALS:
        if (value == null) {
          unsetPart_vals();
        } else {
          setPart_vals((java.util.List<java.lang.String>)value);
        }
        break;

      case MAX_PARTS:
        if (value == null) {
          unsetMax_parts();
        } else {
          setMax_parts((java.lang.Short)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TBL_NAME:
        return getTbl_name();

      case PART_VALS:
        return getPart_vals();

      case MAX_PARTS:
        return getMax_parts();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TBL_NAME:
        return isSetTbl_name();
      case PART_VALS:
        return isSetPart_vals();
      case MAX_PARTS:
        return isSetMax_parts();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_partition_names_ps_args)
        return this.equals((get_partition_names_ps_args)that);
      return false;
    }

    public boolean equals(get_partition_names_ps_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_part_vals = true && this.isSetPart_vals();
      boolean that_present_part_vals = true && that.isSetPart_vals();
      if (this_present_part_vals || that_present_part_vals) {
        if (!(this_present_part_vals && that_present_part_vals))
          return false;
        if (!this.part_vals.equals(that.part_vals))
          return false;
      }

      boolean this_present_max_parts = true;
      boolean that_present_max_parts = true;
      if (this_present_max_parts || that_present_max_parts) {
        if (!(this_present_max_parts && that_present_max_parts))
          return false;
        if (this.max_parts != that.max_parts)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetPart_vals()) ? 131071 : 524287);
      if (isSetPart_vals())
        hashCode = hashCode * 8191 + part_vals.hashCode();

      hashCode = hashCode * 8191 + max_parts;

      return hashCode;
    }

    @Override
    public int compareTo(get_partition_names_ps_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetPart_vals(), other.isSetPart_vals());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPart_vals()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.part_vals, other.part_vals);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetMax_parts(), other.isSetMax_parts());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetMax_parts()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.max_parts, other.max_parts);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_partition_names_ps_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("part_vals:");
      if (this.part_vals == null) {
        sb.append("null");
      } else {
        sb.append(this.part_vals);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("max_parts:");
      sb.append(this.max_parts);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_partition_names_ps_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partition_names_ps_argsStandardScheme getScheme() {
        return new get_partition_names_ps_argsStandardScheme();
      }
    }

    private static class get_partition_names_ps_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_partition_names_ps_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_partition_names_ps_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // PART_VALS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1286 = iprot.readListBegin();
                  struct.part_vals = new java.util.ArrayList<java.lang.String>(_list1286.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem1287;
                  for (int _i1288 = 0; _i1288 < _list1286.size; ++_i1288)
                  {
                    _elem1287 = iprot.readString();
                    struct.part_vals.add(_elem1287);
                  }
                  iprot.readListEnd();
                }
                struct.setPart_valsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // MAX_PARTS
              if (schemeField.type == org.apache.thrift.protocol.TType.I16) {
                struct.max_parts = iprot.readI16();
                struct.setMax_partsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_partition_names_ps_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        if (struct.part_vals != null) {
          oprot.writeFieldBegin(PART_VALS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.part_vals.size()));
            for (java.lang.String _iter1289 : struct.part_vals)
            {
              oprot.writeString(_iter1289);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(MAX_PARTS_FIELD_DESC);
        oprot.writeI16(struct.max_parts);
        oprot.writeFieldEnd();
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_partition_names_ps_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partition_names_ps_argsTupleScheme getScheme() {
        return new get_partition_names_ps_argsTupleScheme();
      }
    }

    private static class get_partition_names_ps_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_partition_names_ps_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_partition_names_ps_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetPart_vals()) {
          optionals.set(2);
        }
        if (struct.isSetMax_parts()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetPart_vals()) {
          {
            oprot.writeI32(struct.part_vals.size());
            for (java.lang.String _iter1290 : struct.part_vals)
            {
              oprot.writeString(_iter1290);
            }
          }
        }
        if (struct.isSetMax_parts()) {
          oprot.writeI16(struct.max_parts);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_partition_names_ps_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          {
            org.apache.thrift.protocol.TList _list1291 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.part_vals = new java.util.ArrayList<java.lang.String>(_list1291.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem1292;
            for (int _i1293 = 0; _i1293 < _list1291.size; ++_i1293)
            {
              _elem1292 = iprot.readString();
              struct.part_vals.add(_elem1292);
            }
          }
          struct.setPart_valsIsSet(true);
        }
        if (incoming.get(3)) {
          struct.max_parts = iprot.readI16();
          struct.setMax_partsIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition_names_ps_result implements org.apache.thrift.TBase<get_partition_names_ps_result, get_partition_names_ps_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_partition_names_ps_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partition_names_ps_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_partition_names_ps_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_partition_names_ps_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partition_names_ps_result.class, metaDataMap);
    }

    public get_partition_names_ps_result() {
    }

    public get_partition_names_ps_result(
      java.util.List<java.lang.String> success,
      MetaException o1,
      NoSuchObjectException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_partition_names_ps_result(get_partition_names_ps_result other) {
      if (other.isSetSuccess()) {
        java.util.List<java.lang.String> __this__success = new java.util.ArrayList<java.lang.String>(other.success);
        this.success = __this__success;
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchObjectException(other.o2);
      }
    }

    public get_partition_names_ps_result deepCopy() {
      return new get_partition_names_ps_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(java.lang.String elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<java.lang.String>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<java.lang.String>)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchObjectException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_partition_names_ps_result)
        return this.equals((get_partition_names_ps_result)that);
      return false;
    }

    public boolean equals(get_partition_names_ps_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_partition_names_ps_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_partition_names_ps_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_partition_names_ps_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partition_names_ps_resultStandardScheme getScheme() {
        return new get_partition_names_ps_resultStandardScheme();
      }
    }

    private static class get_partition_names_ps_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_partition_names_ps_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_partition_names_ps_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1294 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<java.lang.String>(_list1294.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem1295;
                  for (int _i1296 = 0; _i1296 < _list1294.size; ++_i1296)
                  {
                    _elem1295 = iprot.readString();
                    struct.success.add(_elem1295);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_partition_names_ps_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.success.size()));
            for (java.lang.String _iter1297 : struct.success)
            {
              oprot.writeString(_iter1297);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_partition_names_ps_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partition_names_ps_resultTupleScheme getScheme() {
        return new get_partition_names_ps_resultTupleScheme();
      }
    }

    private static class get_partition_names_ps_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_partition_names_ps_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_partition_names_ps_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (java.lang.String _iter1298 : struct.success)
            {
              oprot.writeString(_iter1298);
            }
          }
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_partition_names_ps_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list1299 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.success = new java.util.ArrayList<java.lang.String>(_list1299.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem1300;
            for (int _i1301 = 0; _i1301 < _list1299.size; ++_i1301)
            {
              _elem1300 = iprot.readString();
              struct.success.add(_elem1300);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new NoSuchObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_by_filter_args implements org.apache.thrift.TBase<get_partitions_by_filter_args, get_partitions_by_filter_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_partitions_by_filter_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partitions_by_filter_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField FILTER_FIELD_DESC = new org.apache.thrift.protocol.TField("filter", org.apache.thrift.protocol.TType.STRING, (short)3);
    private static final org.apache.thrift.protocol.TField MAX_PARTS_FIELD_DESC = new org.apache.thrift.protocol.TField("max_parts", org.apache.thrift.protocol.TType.I16, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_partitions_by_filter_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_partitions_by_filter_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String filter; // required
    private short max_parts; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TBL_NAME((short)2, "tbl_name"),
      FILTER((short)3, "filter"),
      MAX_PARTS((short)4, "max_parts");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // FILTER
            return FILTER;
          case 4: // MAX_PARTS
            return MAX_PARTS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __MAX_PARTS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.FILTER, new org.apache.thrift.meta_data.FieldMetaData("filter", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.MAX_PARTS, new org.apache.thrift.meta_data.FieldMetaData("max_parts", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I16)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partitions_by_filter_args.class, metaDataMap);
    }

    public get_partitions_by_filter_args() {
      this.max_parts = (short)-1;

    }

    public get_partitions_by_filter_args(
      java.lang.String db_name,
      java.lang.String tbl_name,
      java.lang.String filter,
      short max_parts)
    {
      this();
      this.db_name = db_name;
      this.tbl_name = tbl_name;
      this.filter = filter;
      this.max_parts = max_parts;
      setMax_partsIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_partitions_by_filter_args(get_partitions_by_filter_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      if (other.isSetFilter()) {
        this.filter = other.filter;
      }
      this.max_parts = other.max_parts;
    }

    public get_partitions_by_filter_args deepCopy() {
      return new get_partitions_by_filter_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.tbl_name = null;
      this.filter = null;
      this.max_parts = (short)-1;

    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getFilter() {
      return this.filter;
    }

    public void setFilter(@org.apache.thrift.annotation.Nullable java.lang.String filter) {
      this.filter = filter;
    }

    public void unsetFilter() {
      this.filter = null;
    }

    /** Returns true if field filter is set (has been assigned a value) and false otherwise */
    public boolean isSetFilter() {
      return this.filter != null;
    }

    public void setFilterIsSet(boolean value) {
      if (!value) {
        this.filter = null;
      }
    }

    public short getMax_parts() {
      return this.max_parts;
    }

    public void setMax_parts(short max_parts) {
      this.max_parts = max_parts;
      setMax_partsIsSet(true);
    }

    public void unsetMax_parts() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __MAX_PARTS_ISSET_ID);
    }

    /** Returns true if field max_parts is set (has been assigned a value) and false otherwise */
    public boolean isSetMax_parts() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __MAX_PARTS_ISSET_ID);
    }

    public void setMax_partsIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __MAX_PARTS_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case FILTER:
        if (value == null) {
          unsetFilter();
        } else {
          setFilter((java.lang.String)value);
        }
        break;

      case MAX_PARTS:
        if (value == null) {
          unsetMax_parts();
        } else {
          setMax_parts((java.lang.Short)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TBL_NAME:
        return getTbl_name();

      case FILTER:
        return getFilter();

      case MAX_PARTS:
        return getMax_parts();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TBL_NAME:
        return isSetTbl_name();
      case FILTER:
        return isSetFilter();
      case MAX_PARTS:
        return isSetMax_parts();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_partitions_by_filter_args)
        return this.equals((get_partitions_by_filter_args)that);
      return false;
    }

    public boolean equals(get_partitions_by_filter_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_filter = true && this.isSetFilter();
      boolean that_present_filter = true && that.isSetFilter();
      if (this_present_filter || that_present_filter) {
        if (!(this_present_filter && that_present_filter))
          return false;
        if (!this.filter.equals(that.filter))
          return false;
      }

      boolean this_present_max_parts = true;
      boolean that_present_max_parts = true;
      if (this_present_max_parts || that_present_max_parts) {
        if (!(this_present_max_parts && that_present_max_parts))
          return false;
        if (this.max_parts != that.max_parts)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetFilter()) ? 131071 : 524287);
      if (isSetFilter())
        hashCode = hashCode * 8191 + filter.hashCode();

      hashCode = hashCode * 8191 + max_parts;

      return hashCode;
    }

    @Override
    public int compareTo(get_partitions_by_filter_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetFilter(), other.isSetFilter());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetFilter()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.filter, other.filter);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetMax_parts(), other.isSetMax_parts());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetMax_parts()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.max_parts, other.max_parts);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_partitions_by_filter_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("filter:");
      if (this.filter == null) {
        sb.append("null");
      } else {
        sb.append(this.filter);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("max_parts:");
      sb.append(this.max_parts);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_partitions_by_filter_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_by_filter_argsStandardScheme getScheme() {
        return new get_partitions_by_filter_argsStandardScheme();
      }
    }

    private static class get_partitions_by_filter_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_partitions_by_filter_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_partitions_by_filter_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // FILTER
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.filter = iprot.readString();
                struct.setFilterIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // MAX_PARTS
              if (schemeField.type == org.apache.thrift.protocol.TType.I16) {
                struct.max_parts = iprot.readI16();
                struct.setMax_partsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_partitions_by_filter_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        if (struct.filter != null) {
          oprot.writeFieldBegin(FILTER_FIELD_DESC);
          oprot.writeString(struct.filter);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(MAX_PARTS_FIELD_DESC);
        oprot.writeI16(struct.max_parts);
        oprot.writeFieldEnd();
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_partitions_by_filter_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_by_filter_argsTupleScheme getScheme() {
        return new get_partitions_by_filter_argsTupleScheme();
      }
    }

    private static class get_partitions_by_filter_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_partitions_by_filter_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_partitions_by_filter_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetFilter()) {
          optionals.set(2);
        }
        if (struct.isSetMax_parts()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetFilter()) {
          oprot.writeString(struct.filter);
        }
        if (struct.isSetMax_parts()) {
          oprot.writeI16(struct.max_parts);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_partitions_by_filter_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.filter = iprot.readString();
          struct.setFilterIsSet(true);
        }
        if (incoming.get(3)) {
          struct.max_parts = iprot.readI16();
          struct.setMax_partsIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_by_filter_result implements org.apache.thrift.TBase<get_partitions_by_filter_result, get_partitions_by_filter_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_partitions_by_filter_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partitions_by_filter_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_partitions_by_filter_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_partitions_by_filter_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<Partition> success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Partition.class))));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partitions_by_filter_result.class, metaDataMap);
    }

    public get_partitions_by_filter_result() {
    }

    public get_partitions_by_filter_result(
      java.util.List<Partition> success,
      MetaException o1,
      NoSuchObjectException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_partitions_by_filter_result(get_partitions_by_filter_result other) {
      if (other.isSetSuccess()) {
        java.util.List<Partition> __this__success = new java.util.ArrayList<Partition>(other.success.size());
        for (Partition other_element : other.success) {
          __this__success.add(new Partition(other_element));
        }
        this.success = __this__success;
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchObjectException(other.o2);
      }
    }

    public get_partitions_by_filter_result deepCopy() {
      return new get_partitions_by_filter_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<Partition> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(Partition elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<Partition>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<Partition> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<Partition> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<Partition>)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchObjectException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_partitions_by_filter_result)
        return this.equals((get_partitions_by_filter_result)that);
      return false;
    }

    public boolean equals(get_partitions_by_filter_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_partitions_by_filter_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_partitions_by_filter_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_partitions_by_filter_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_by_filter_resultStandardScheme getScheme() {
        return new get_partitions_by_filter_resultStandardScheme();
      }
    }

    private static class get_partitions_by_filter_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_partitions_by_filter_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_partitions_by_filter_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1302 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<Partition>(_list1302.size);
                  @org.apache.thrift.annotation.Nullable Partition _elem1303;
                  for (int _i1304 = 0; _i1304 < _list1302.size; ++_i1304)
                  {
                    _elem1303 = new Partition();
                    _elem1303.read(iprot);
                    struct.success.add(_elem1303);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_partitions_by_filter_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
            for (Partition _iter1305 : struct.success)
            {
              _iter1305.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_partitions_by_filter_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_by_filter_resultTupleScheme getScheme() {
        return new get_partitions_by_filter_resultTupleScheme();
      }
    }

    private static class get_partitions_by_filter_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_partitions_by_filter_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_partitions_by_filter_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (Partition _iter1306 : struct.success)
            {
              _iter1306.write(oprot);
            }
          }
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_partitions_by_filter_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list1307 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
            struct.success = new java.util.ArrayList<Partition>(_list1307.size);
            @org.apache.thrift.annotation.Nullable Partition _elem1308;
            for (int _i1309 = 0; _i1309 < _list1307.size; ++_i1309)
            {
              _elem1308 = new Partition();
              _elem1308.read(iprot);
              struct.success.add(_elem1308);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new NoSuchObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_part_specs_by_filter_args implements org.apache.thrift.TBase<get_part_specs_by_filter_args, get_part_specs_by_filter_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_part_specs_by_filter_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_part_specs_by_filter_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField FILTER_FIELD_DESC = new org.apache.thrift.protocol.TField("filter", org.apache.thrift.protocol.TType.STRING, (short)3);
    private static final org.apache.thrift.protocol.TField MAX_PARTS_FIELD_DESC = new org.apache.thrift.protocol.TField("max_parts", org.apache.thrift.protocol.TType.I32, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_part_specs_by_filter_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_part_specs_by_filter_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String filter; // required
    private int max_parts; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TBL_NAME((short)2, "tbl_name"),
      FILTER((short)3, "filter"),
      MAX_PARTS((short)4, "max_parts");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // FILTER
            return FILTER;
          case 4: // MAX_PARTS
            return MAX_PARTS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __MAX_PARTS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.FILTER, new org.apache.thrift.meta_data.FieldMetaData("filter", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.MAX_PARTS, new org.apache.thrift.meta_data.FieldMetaData("max_parts", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_part_specs_by_filter_args.class, metaDataMap);
    }

    public get_part_specs_by_filter_args() {
      this.max_parts = -1;

    }

    public get_part_specs_by_filter_args(
      java.lang.String db_name,
      java.lang.String tbl_name,
      java.lang.String filter,
      int max_parts)
    {
      this();
      this.db_name = db_name;
      this.tbl_name = tbl_name;
      this.filter = filter;
      this.max_parts = max_parts;
      setMax_partsIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_part_specs_by_filter_args(get_part_specs_by_filter_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      if (other.isSetFilter()) {
        this.filter = other.filter;
      }
      this.max_parts = other.max_parts;
    }

    public get_part_specs_by_filter_args deepCopy() {
      return new get_part_specs_by_filter_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.tbl_name = null;
      this.filter = null;
      this.max_parts = -1;

    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getFilter() {
      return this.filter;
    }

    public void setFilter(@org.apache.thrift.annotation.Nullable java.lang.String filter) {
      this.filter = filter;
    }

    public void unsetFilter() {
      this.filter = null;
    }

    /** Returns true if field filter is set (has been assigned a value) and false otherwise */
    public boolean isSetFilter() {
      return this.filter != null;
    }

    public void setFilterIsSet(boolean value) {
      if (!value) {
        this.filter = null;
      }
    }

    public int getMax_parts() {
      return this.max_parts;
    }

    public void setMax_parts(int max_parts) {
      this.max_parts = max_parts;
      setMax_partsIsSet(true);
    }

    public void unsetMax_parts() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __MAX_PARTS_ISSET_ID);
    }

    /** Returns true if field max_parts is set (has been assigned a value) and false otherwise */
    public boolean isSetMax_parts() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __MAX_PARTS_ISSET_ID);
    }

    public void setMax_partsIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __MAX_PARTS_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case FILTER:
        if (value == null) {
          unsetFilter();
        } else {
          setFilter((java.lang.String)value);
        }
        break;

      case MAX_PARTS:
        if (value == null) {
          unsetMax_parts();
        } else {
          setMax_parts((java.lang.Integer)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TBL_NAME:
        return getTbl_name();

      case FILTER:
        return getFilter();

      case MAX_PARTS:
        return getMax_parts();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TBL_NAME:
        return isSetTbl_name();
      case FILTER:
        return isSetFilter();
      case MAX_PARTS:
        return isSetMax_parts();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_part_specs_by_filter_args)
        return this.equals((get_part_specs_by_filter_args)that);
      return false;
    }

    public boolean equals(get_part_specs_by_filter_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_filter = true && this.isSetFilter();
      boolean that_present_filter = true && that.isSetFilter();
      if (this_present_filter || that_present_filter) {
        if (!(this_present_filter && that_present_filter))
          return false;
        if (!this.filter.equals(that.filter))
          return false;
      }

      boolean this_present_max_parts = true;
      boolean that_present_max_parts = true;
      if (this_present_max_parts || that_present_max_parts) {
        if (!(this_present_max_parts && that_present_max_parts))
          return false;
        if (this.max_parts != that.max_parts)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetFilter()) ? 131071 : 524287);
      if (isSetFilter())
        hashCode = hashCode * 8191 + filter.hashCode();

      hashCode = hashCode * 8191 + max_parts;

      return hashCode;
    }

    @Override
    public int compareTo(get_part_specs_by_filter_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetFilter(), other.isSetFilter());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetFilter()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.filter, other.filter);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetMax_parts(), other.isSetMax_parts());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetMax_parts()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.max_parts, other.max_parts);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_part_specs_by_filter_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("filter:");
      if (this.filter == null) {
        sb.append("null");
      } else {
        sb.append(this.filter);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("max_parts:");
      sb.append(this.max_parts);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_part_specs_by_filter_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_part_specs_by_filter_argsStandardScheme getScheme() {
        return new get_part_specs_by_filter_argsStandardScheme();
      }
    }

    private static class get_part_specs_by_filter_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_part_specs_by_filter_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_part_specs_by_filter_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // FILTER
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.filter = iprot.readString();
                struct.setFilterIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // MAX_PARTS
              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
                struct.max_parts = iprot.readI32();
                struct.setMax_partsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_part_specs_by_filter_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        if (struct.filter != null) {
          oprot.writeFieldBegin(FILTER_FIELD_DESC);
          oprot.writeString(struct.filter);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(MAX_PARTS_FIELD_DESC);
        oprot.writeI32(struct.max_parts);
        oprot.writeFieldEnd();
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_part_specs_by_filter_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_part_specs_by_filter_argsTupleScheme getScheme() {
        return new get_part_specs_by_filter_argsTupleScheme();
      }
    }

    private static class get_part_specs_by_filter_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_part_specs_by_filter_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_part_specs_by_filter_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetFilter()) {
          optionals.set(2);
        }
        if (struct.isSetMax_parts()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetFilter()) {
          oprot.writeString(struct.filter);
        }
        if (struct.isSetMax_parts()) {
          oprot.writeI32(struct.max_parts);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_part_specs_by_filter_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.filter = iprot.readString();
          struct.setFilterIsSet(true);
        }
        if (incoming.get(3)) {
          struct.max_parts = iprot.readI32();
          struct.setMax_partsIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_part_specs_by_filter_result implements org.apache.thrift.TBase<get_part_specs_by_filter_result, get_part_specs_by_filter_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_part_specs_by_filter_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_part_specs_by_filter_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_part_specs_by_filter_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_part_specs_by_filter_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<PartitionSpec> success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, PartitionSpec.class))));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_part_specs_by_filter_result.class, metaDataMap);
    }

    public get_part_specs_by_filter_result() {
    }

    public get_part_specs_by_filter_result(
      java.util.List<PartitionSpec> success,
      MetaException o1,
      NoSuchObjectException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_part_specs_by_filter_result(get_part_specs_by_filter_result other) {
      if (other.isSetSuccess()) {
        java.util.List<PartitionSpec> __this__success = new java.util.ArrayList<PartitionSpec>(other.success.size());
        for (PartitionSpec other_element : other.success) {
          __this__success.add(new PartitionSpec(other_element));
        }
        this.success = __this__success;
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchObjectException(other.o2);
      }
    }

    public get_part_specs_by_filter_result deepCopy() {
      return new get_part_specs_by_filter_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<PartitionSpec> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(PartitionSpec elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<PartitionSpec>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<PartitionSpec> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<PartitionSpec> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<PartitionSpec>)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchObjectException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_part_specs_by_filter_result)
        return this.equals((get_part_specs_by_filter_result)that);
      return false;
    }

    public boolean equals(get_part_specs_by_filter_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_part_specs_by_filter_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_part_specs_by_filter_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_part_specs_by_filter_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_part_specs_by_filter_resultStandardScheme getScheme() {
        return new get_part_specs_by_filter_resultStandardScheme();
      }
    }

    private static class get_part_specs_by_filter_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_part_specs_by_filter_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_part_specs_by_filter_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1310 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<PartitionSpec>(_list1310.size);
                  @org.apache.thrift.annotation.Nullable PartitionSpec _elem1311;
                  for (int _i1312 = 0; _i1312 < _list1310.size; ++_i1312)
                  {
                    _elem1311 = new PartitionSpec();
                    _elem1311.read(iprot);
                    struct.success.add(_elem1311);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_part_specs_by_filter_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
            for (PartitionSpec _iter1313 : struct.success)
            {
              _iter1313.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_part_specs_by_filter_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_part_specs_by_filter_resultTupleScheme getScheme() {
        return new get_part_specs_by_filter_resultTupleScheme();
      }
    }

    private static class get_part_specs_by_filter_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_part_specs_by_filter_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_part_specs_by_filter_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (PartitionSpec _iter1314 : struct.success)
            {
              _iter1314.write(oprot);
            }
          }
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_part_specs_by_filter_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list1315 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
            struct.success = new java.util.ArrayList<PartitionSpec>(_list1315.size);
            @org.apache.thrift.annotation.Nullable PartitionSpec _elem1316;
            for (int _i1317 = 0; _i1317 < _list1315.size; ++_i1317)
            {
              _elem1316 = new PartitionSpec();
              _elem1316.read(iprot);
              struct.success.add(_elem1316);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new NoSuchObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_by_expr_args implements org.apache.thrift.TBase<get_partitions_by_expr_args, get_partitions_by_expr_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_partitions_by_expr_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partitions_by_expr_args");

    private static final org.apache.thrift.protocol.TField REQ_FIELD_DESC = new org.apache.thrift.protocol.TField("req", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_partitions_by_expr_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_partitions_by_expr_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable PartitionsByExprRequest req; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQ((short)1, "req");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQ
            return REQ;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQ, new org.apache.thrift.meta_data.FieldMetaData("req", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, PartitionsByExprRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partitions_by_expr_args.class, metaDataMap);
    }

    public get_partitions_by_expr_args() {
    }

    public get_partitions_by_expr_args(
      PartitionsByExprRequest req)
    {
      this();
      this.req = req;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_partitions_by_expr_args(get_partitions_by_expr_args other) {
      if (other.isSetReq()) {
        this.req = new PartitionsByExprRequest(other.req);
      }
    }

    public get_partitions_by_expr_args deepCopy() {
      return new get_partitions_by_expr_args(this);
    }

    @Override
    public void clear() {
      this.req = null;
    }

    @org.apache.thrift.annotation.Nullable
    public PartitionsByExprRequest getReq() {
      return this.req;
    }

    public void setReq(@org.apache.thrift.annotation.Nullable PartitionsByExprRequest req) {
      this.req = req;
    }

    public void unsetReq() {
      this.req = null;
    }

    /** Returns true if field req is set (has been assigned a value) and false otherwise */
    public boolean isSetReq() {
      return this.req != null;
    }

    public void setReqIsSet(boolean value) {
      if (!value) {
        this.req = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQ:
        if (value == null) {
          unsetReq();
        } else {
          setReq((PartitionsByExprRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQ:
        return getReq();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQ:
        return isSetReq();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_partitions_by_expr_args)
        return this.equals((get_partitions_by_expr_args)that);
      return false;
    }

    public boolean equals(get_partitions_by_expr_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_req = true && this.isSetReq();
      boolean that_present_req = true && that.isSetReq();
      if (this_present_req || that_present_req) {
        if (!(this_present_req && that_present_req))
          return false;
        if (!this.req.equals(that.req))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetReq()) ? 131071 : 524287);
      if (isSetReq())
        hashCode = hashCode * 8191 + req.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_partitions_by_expr_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetReq(), other.isSetReq());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetReq()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.req, other.req);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_partitions_by_expr_args(");
      boolean first = true;

      sb.append("req:");
      if (this.req == null) {
        sb.append("null");
      } else {
        sb.append(this.req);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (req != null) {
        req.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_partitions_by_expr_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_by_expr_argsStandardScheme getScheme() {
        return new get_partitions_by_expr_argsStandardScheme();
      }
    }

    private static class get_partitions_by_expr_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_partitions_by_expr_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_partitions_by_expr_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQ
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.req = new PartitionsByExprRequest();
                struct.req.read(iprot);
                struct.setReqIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_partitions_by_expr_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.req != null) {
          oprot.writeFieldBegin(REQ_FIELD_DESC);
          struct.req.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_partitions_by_expr_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_by_expr_argsTupleScheme getScheme() {
        return new get_partitions_by_expr_argsTupleScheme();
      }
    }

    private static class get_partitions_by_expr_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_partitions_by_expr_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_partitions_by_expr_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetReq()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetReq()) {
          struct.req.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_partitions_by_expr_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.req = new PartitionsByExprRequest();
          struct.req.read(iprot);
          struct.setReqIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_by_expr_result implements org.apache.thrift.TBase<get_partitions_by_expr_result, get_partitions_by_expr_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_partitions_by_expr_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partitions_by_expr_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_partitions_by_expr_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_partitions_by_expr_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable PartitionsByExprResult success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, PartitionsByExprResult.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partitions_by_expr_result.class, metaDataMap);
    }

    public get_partitions_by_expr_result() {
    }

    public get_partitions_by_expr_result(
      PartitionsByExprResult success,
      MetaException o1,
      NoSuchObjectException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_partitions_by_expr_result(get_partitions_by_expr_result other) {
      if (other.isSetSuccess()) {
        this.success = new PartitionsByExprResult(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchObjectException(other.o2);
      }
    }

    public get_partitions_by_expr_result deepCopy() {
      return new get_partitions_by_expr_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public PartitionsByExprResult getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable PartitionsByExprResult success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((PartitionsByExprResult)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchObjectException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_partitions_by_expr_result)
        return this.equals((get_partitions_by_expr_result)that);
      return false;
    }

    public boolean equals(get_partitions_by_expr_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_partitions_by_expr_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_partitions_by_expr_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_partitions_by_expr_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_by_expr_resultStandardScheme getScheme() {
        return new get_partitions_by_expr_resultStandardScheme();
      }
    }

    private static class get_partitions_by_expr_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_partitions_by_expr_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_partitions_by_expr_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new PartitionsByExprResult();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_partitions_by_expr_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_partitions_by_expr_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_by_expr_resultTupleScheme getScheme() {
        return new get_partitions_by_expr_resultTupleScheme();
      }
    }

    private static class get_partitions_by_expr_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_partitions_by_expr_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_partitions_by_expr_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_partitions_by_expr_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = new PartitionsByExprResult();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new NoSuchObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_num_partitions_by_filter_args implements org.apache.thrift.TBase<get_num_partitions_by_filter_args, get_num_partitions_by_filter_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_num_partitions_by_filter_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_num_partitions_by_filter_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField FILTER_FIELD_DESC = new org.apache.thrift.protocol.TField("filter", org.apache.thrift.protocol.TType.STRING, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_num_partitions_by_filter_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_num_partitions_by_filter_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String filter; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TBL_NAME((short)2, "tbl_name"),
      FILTER((short)3, "filter");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // FILTER
            return FILTER;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.FILTER, new org.apache.thrift.meta_data.FieldMetaData("filter", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_num_partitions_by_filter_args.class, metaDataMap);
    }

    public get_num_partitions_by_filter_args() {
    }

    public get_num_partitions_by_filter_args(
      java.lang.String db_name,
      java.lang.String tbl_name,
      java.lang.String filter)
    {
      this();
      this.db_name = db_name;
      this.tbl_name = tbl_name;
      this.filter = filter;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_num_partitions_by_filter_args(get_num_partitions_by_filter_args other) {
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      if (other.isSetFilter()) {
        this.filter = other.filter;
      }
    }

    public get_num_partitions_by_filter_args deepCopy() {
      return new get_num_partitions_by_filter_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.tbl_name = null;
      this.filter = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getFilter() {
      return this.filter;
    }

    public void setFilter(@org.apache.thrift.annotation.Nullable java.lang.String filter) {
      this.filter = filter;
    }

    public void unsetFilter() {
      this.filter = null;
    }

    /** Returns true if field filter is set (has been assigned a value) and false otherwise */
    public boolean isSetFilter() {
      return this.filter != null;
    }

    public void setFilterIsSet(boolean value) {
      if (!value) {
        this.filter = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case FILTER:
        if (value == null) {
          unsetFilter();
        } else {
          setFilter((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TBL_NAME:
        return getTbl_name();

      case FILTER:
        return getFilter();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TBL_NAME:
        return isSetTbl_name();
      case FILTER:
        return isSetFilter();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_num_partitions_by_filter_args)
        return this.equals((get_num_partitions_by_filter_args)that);
      return false;
    }

    public boolean equals(get_num_partitions_by_filter_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_filter = true && this.isSetFilter();
      boolean that_present_filter = true && that.isSetFilter();
      if (this_present_filter || that_present_filter) {
        if (!(this_present_filter && that_present_filter))
          return false;
        if (!this.filter.equals(that.filter))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetFilter()) ? 131071 : 524287);
      if (isSetFilter())
        hashCode = hashCode * 8191 + filter.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_num_partitions_by_filter_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetFilter(), other.isSetFilter());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetFilter()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.filter, other.filter);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_num_partitions_by_filter_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("filter:");
      if (this.filter == null) {
        sb.append("null");
      } else {
        sb.append(this.filter);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_num_partitions_by_filter_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_num_partitions_by_filter_argsStandardScheme getScheme() {
        return new get_num_partitions_by_filter_argsStandardScheme();
      }
    }

    private static class get_num_partitions_by_filter_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_num_partitions_by_filter_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_num_partitions_by_filter_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // FILTER
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.filter = iprot.readString();
                struct.setFilterIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_num_partitions_by_filter_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        if (struct.filter != null) {
          oprot.writeFieldBegin(FILTER_FIELD_DESC);
          oprot.writeString(struct.filter);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_num_partitions_by_filter_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_num_partitions_by_filter_argsTupleScheme getScheme() {
        return new get_num_partitions_by_filter_argsTupleScheme();
      }
    }

    private static class get_num_partitions_by_filter_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_num_partitions_by_filter_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_num_partitions_by_filter_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetFilter()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetFilter()) {
          oprot.writeString(struct.filter);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_num_partitions_by_filter_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.filter = iprot.readString();
          struct.setFilterIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_num_partitions_by_filter_result implements org.apache.thrift.TBase<get_num_partitions_by_filter_result, get_num_partitions_by_filter_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_num_partitions_by_filter_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_num_partitions_by_filter_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.I32, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_num_partitions_by_filter_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_num_partitions_by_filter_resultTupleSchemeFactory();

    private int success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_num_partitions_by_filter_result.class, metaDataMap);
    }

    public get_num_partitions_by_filter_result() {
    }

    public get_num_partitions_by_filter_result(
      int success,
      MetaException o1,
      NoSuchObjectException o2)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_num_partitions_by_filter_result(get_num_partitions_by_filter_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchObjectException(other.o2);
      }
    }

    public get_num_partitions_by_filter_result deepCopy() {
      return new get_num_partitions_by_filter_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = 0;
      this.o1 = null;
      this.o2 = null;
    }

    public int getSuccess() {
      return this.success;
    }

    public void setSuccess(int success) {
      this.success = success;
      setSuccessIsSet(true);
    }

    public void unsetSuccess() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.lang.Integer)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchObjectException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_num_partitions_by_filter_result)
        return this.equals((get_num_partitions_by_filter_result)that);
      return false;
    }

    public boolean equals(get_num_partitions_by_filter_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + success;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_num_partitions_by_filter_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_num_partitions_by_filter_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_num_partitions_by_filter_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_num_partitions_by_filter_resultStandardScheme getScheme() {
        return new get_num_partitions_by_filter_resultStandardScheme();
      }
    }

    private static class get_num_partitions_by_filter_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_num_partitions_by_filter_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_num_partitions_by_filter_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
                struct.success = iprot.readI32();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_num_partitions_by_filter_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeI32(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_num_partitions_by_filter_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_num_partitions_by_filter_resultTupleScheme getScheme() {
        return new get_num_partitions_by_filter_resultTupleScheme();
      }
    }

    private static class get_num_partitions_by_filter_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_num_partitions_by_filter_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_num_partitions_by_filter_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          oprot.writeI32(struct.success);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_num_partitions_by_filter_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = iprot.readI32();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new NoSuchObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_by_names_args implements org.apache.thrift.TBase<get_partitions_by_names_args, get_partitions_by_names_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_partitions_by_names_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partitions_by_names_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField NAMES_FIELD_DESC = new org.apache.thrift.protocol.TField("names", org.apache.thrift.protocol.TType.LIST, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_partitions_by_names_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_partitions_by_names_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> names; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TBL_NAME((short)2, "tbl_name"),
      NAMES((short)3, "names");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // NAMES
            return NAMES;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.NAMES, new org.apache.thrift.meta_data.FieldMetaData("names", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partitions_by_names_args.class, metaDataMap);
    }

    public get_partitions_by_names_args() {
    }

    public get_partitions_by_names_args(
      java.lang.String db_name,
      java.lang.String tbl_name,
      java.util.List<java.lang.String> names)
    {
      this();
      this.db_name = db_name;
      this.tbl_name = tbl_name;
      this.names = names;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_partitions_by_names_args(get_partitions_by_names_args other) {
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      if (other.isSetNames()) {
        java.util.List<java.lang.String> __this__names = new java.util.ArrayList<java.lang.String>(other.names);
        this.names = __this__names;
      }
    }

    public get_partitions_by_names_args deepCopy() {
      return new get_partitions_by_names_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.tbl_name = null;
      this.names = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    public int getNamesSize() {
      return (this.names == null) ? 0 : this.names.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getNamesIterator() {
      return (this.names == null) ? null : this.names.iterator();
    }

    public void addToNames(java.lang.String elem) {
      if (this.names == null) {
        this.names = new java.util.ArrayList<java.lang.String>();
      }
      this.names.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getNames() {
      return this.names;
    }

    public void setNames(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> names) {
      this.names = names;
    }

    public void unsetNames() {
      this.names = null;
    }

    /** Returns true if field names is set (has been assigned a value) and false otherwise */
    public boolean isSetNames() {
      return this.names != null;
    }

    public void setNamesIsSet(boolean value) {
      if (!value) {
        this.names = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case NAMES:
        if (value == null) {
          unsetNames();
        } else {
          setNames((java.util.List<java.lang.String>)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TBL_NAME:
        return getTbl_name();

      case NAMES:
        return getNames();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TBL_NAME:
        return isSetTbl_name();
      case NAMES:
        return isSetNames();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_partitions_by_names_args)
        return this.equals((get_partitions_by_names_args)that);
      return false;
    }

    public boolean equals(get_partitions_by_names_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_names = true && this.isSetNames();
      boolean that_present_names = true && that.isSetNames();
      if (this_present_names || that_present_names) {
        if (!(this_present_names && that_present_names))
          return false;
        if (!this.names.equals(that.names))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetNames()) ? 131071 : 524287);
      if (isSetNames())
        hashCode = hashCode * 8191 + names.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_partitions_by_names_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetNames(), other.isSetNames());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetNames()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.names, other.names);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_partitions_by_names_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("names:");
      if (this.names == null) {
        sb.append("null");
      } else {
        sb.append(this.names);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_partitions_by_names_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_by_names_argsStandardScheme getScheme() {
        return new get_partitions_by_names_argsStandardScheme();
      }
    }

    private static class get_partitions_by_names_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_partitions_by_names_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_partitions_by_names_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // NAMES
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1318 = iprot.readListBegin();
                  struct.names = new java.util.ArrayList<java.lang.String>(_list1318.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem1319;
                  for (int _i1320 = 0; _i1320 < _list1318.size; ++_i1320)
                  {
                    _elem1319 = iprot.readString();
                    struct.names.add(_elem1319);
                  }
                  iprot.readListEnd();
                }
                struct.setNamesIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_partitions_by_names_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        if (struct.names != null) {
          oprot.writeFieldBegin(NAMES_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.names.size()));
            for (java.lang.String _iter1321 : struct.names)
            {
              oprot.writeString(_iter1321);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_partitions_by_names_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_by_names_argsTupleScheme getScheme() {
        return new get_partitions_by_names_argsTupleScheme();
      }
    }

    private static class get_partitions_by_names_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_partitions_by_names_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_partitions_by_names_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetNames()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetNames()) {
          {
            oprot.writeI32(struct.names.size());
            for (java.lang.String _iter1322 : struct.names)
            {
              oprot.writeString(_iter1322);
            }
          }
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_partitions_by_names_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          {
            org.apache.thrift.protocol.TList _list1323 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.names = new java.util.ArrayList<java.lang.String>(_list1323.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem1324;
            for (int _i1325 = 0; _i1325 < _list1323.size; ++_i1325)
            {
              _elem1324 = iprot.readString();
              struct.names.add(_elem1324);
            }
          }
          struct.setNamesIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_by_names_result implements org.apache.thrift.TBase<get_partitions_by_names_result, get_partitions_by_names_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_partitions_by_names_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partitions_by_names_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_partitions_by_names_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_partitions_by_names_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<Partition> success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Partition.class))));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partitions_by_names_result.class, metaDataMap);
    }

    public get_partitions_by_names_result() {
    }

    public get_partitions_by_names_result(
      java.util.List<Partition> success,
      MetaException o1,
      NoSuchObjectException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_partitions_by_names_result(get_partitions_by_names_result other) {
      if (other.isSetSuccess()) {
        java.util.List<Partition> __this__success = new java.util.ArrayList<Partition>(other.success.size());
        for (Partition other_element : other.success) {
          __this__success.add(new Partition(other_element));
        }
        this.success = __this__success;
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchObjectException(other.o2);
      }
    }

    public get_partitions_by_names_result deepCopy() {
      return new get_partitions_by_names_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<Partition> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(Partition elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<Partition>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<Partition> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<Partition> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<Partition>)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchObjectException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_partitions_by_names_result)
        return this.equals((get_partitions_by_names_result)that);
      return false;
    }

    public boolean equals(get_partitions_by_names_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_partitions_by_names_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_partitions_by_names_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_partitions_by_names_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_by_names_resultStandardScheme getScheme() {
        return new get_partitions_by_names_resultStandardScheme();
      }
    }

    private static class get_partitions_by_names_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_partitions_by_names_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_partitions_by_names_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1326 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<Partition>(_list1326.size);
                  @org.apache.thrift.annotation.Nullable Partition _elem1327;
                  for (int _i1328 = 0; _i1328 < _list1326.size; ++_i1328)
                  {
                    _elem1327 = new Partition();
                    _elem1327.read(iprot);
                    struct.success.add(_elem1327);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_partitions_by_names_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
            for (Partition _iter1329 : struct.success)
            {
              _iter1329.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_partitions_by_names_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_by_names_resultTupleScheme getScheme() {
        return new get_partitions_by_names_resultTupleScheme();
      }
    }

    private static class get_partitions_by_names_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_partitions_by_names_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_partitions_by_names_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (Partition _iter1330 : struct.success)
            {
              _iter1330.write(oprot);
            }
          }
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_partitions_by_names_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list1331 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
            struct.success = new java.util.ArrayList<Partition>(_list1331.size);
            @org.apache.thrift.annotation.Nullable Partition _elem1332;
            for (int _i1333 = 0; _i1333 < _list1331.size; ++_i1333)
            {
              _elem1332 = new Partition();
              _elem1332.read(iprot);
              struct.success.add(_elem1332);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new NoSuchObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_partition_args implements org.apache.thrift.TBase<alter_partition_args, alter_partition_args._Fields>, java.io.Serializable, Cloneable, Comparable<alter_partition_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("alter_partition_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField NEW_PART_FIELD_DESC = new org.apache.thrift.protocol.TField("new_part", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new alter_partition_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new alter_partition_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private @org.apache.thrift.annotation.Nullable Partition new_part; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TBL_NAME((short)2, "tbl_name"),
      NEW_PART((short)3, "new_part");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // NEW_PART
            return NEW_PART;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.NEW_PART, new org.apache.thrift.meta_data.FieldMetaData("new_part", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Partition.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(alter_partition_args.class, metaDataMap);
    }

    public alter_partition_args() {
    }

    public alter_partition_args(
      java.lang.String db_name,
      java.lang.String tbl_name,
      Partition new_part)
    {
      this();
      this.db_name = db_name;
      this.tbl_name = tbl_name;
      this.new_part = new_part;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public alter_partition_args(alter_partition_args other) {
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      if (other.isSetNew_part()) {
        this.new_part = new Partition(other.new_part);
      }
    }

    public alter_partition_args deepCopy() {
      return new alter_partition_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.tbl_name = null;
      this.new_part = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public Partition getNew_part() {
      return this.new_part;
    }

    public void setNew_part(@org.apache.thrift.annotation.Nullable Partition new_part) {
      this.new_part = new_part;
    }

    public void unsetNew_part() {
      this.new_part = null;
    }

    /** Returns true if field new_part is set (has been assigned a value) and false otherwise */
    public boolean isSetNew_part() {
      return this.new_part != null;
    }

    public void setNew_partIsSet(boolean value) {
      if (!value) {
        this.new_part = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case NEW_PART:
        if (value == null) {
          unsetNew_part();
        } else {
          setNew_part((Partition)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TBL_NAME:
        return getTbl_name();

      case NEW_PART:
        return getNew_part();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TBL_NAME:
        return isSetTbl_name();
      case NEW_PART:
        return isSetNew_part();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof alter_partition_args)
        return this.equals((alter_partition_args)that);
      return false;
    }

    public boolean equals(alter_partition_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_new_part = true && this.isSetNew_part();
      boolean that_present_new_part = true && that.isSetNew_part();
      if (this_present_new_part || that_present_new_part) {
        if (!(this_present_new_part && that_present_new_part))
          return false;
        if (!this.new_part.equals(that.new_part))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetNew_part()) ? 131071 : 524287);
      if (isSetNew_part())
        hashCode = hashCode * 8191 + new_part.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(alter_partition_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetNew_part(), other.isSetNew_part());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetNew_part()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.new_part, other.new_part);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("alter_partition_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("new_part:");
      if (this.new_part == null) {
        sb.append("null");
      } else {
        sb.append(this.new_part);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (new_part != null) {
        new_part.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class alter_partition_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_partition_argsStandardScheme getScheme() {
        return new alter_partition_argsStandardScheme();
      }
    }

    private static class alter_partition_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<alter_partition_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, alter_partition_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // NEW_PART
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.new_part = new Partition();
                struct.new_part.read(iprot);
                struct.setNew_partIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, alter_partition_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        if (struct.new_part != null) {
          oprot.writeFieldBegin(NEW_PART_FIELD_DESC);
          struct.new_part.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class alter_partition_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_partition_argsTupleScheme getScheme() {
        return new alter_partition_argsTupleScheme();
      }
    }

    private static class alter_partition_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<alter_partition_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, alter_partition_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetNew_part()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetNew_part()) {
          struct.new_part.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, alter_partition_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.new_part = new Partition();
          struct.new_part.read(iprot);
          struct.setNew_partIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_partition_result implements org.apache.thrift.TBase<alter_partition_result, alter_partition_result._Fields>, java.io.Serializable, Cloneable, Comparable<alter_partition_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("alter_partition_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new alter_partition_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new alter_partition_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable InvalidOperationException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidOperationException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(alter_partition_result.class, metaDataMap);
    }

    public alter_partition_result() {
    }

    public alter_partition_result(
      InvalidOperationException o1,
      MetaException o2)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public alter_partition_result(alter_partition_result other) {
      if (other.isSetO1()) {
        this.o1 = new InvalidOperationException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public alter_partition_result deepCopy() {
      return new alter_partition_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidOperationException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable InvalidOperationException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((InvalidOperationException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof alter_partition_result)
        return this.equals((alter_partition_result)that);
      return false;
    }

    public boolean equals(alter_partition_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(alter_partition_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("alter_partition_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class alter_partition_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_partition_resultStandardScheme getScheme() {
        return new alter_partition_resultStandardScheme();
      }
    }

    private static class alter_partition_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<alter_partition_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, alter_partition_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new InvalidOperationException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, alter_partition_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class alter_partition_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_partition_resultTupleScheme getScheme() {
        return new alter_partition_resultTupleScheme();
      }
    }

    private static class alter_partition_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<alter_partition_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, alter_partition_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, alter_partition_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.o1 = new InvalidOperationException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_partitions_args implements org.apache.thrift.TBase<alter_partitions_args, alter_partitions_args._Fields>, java.io.Serializable, Cloneable, Comparable<alter_partitions_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("alter_partitions_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField NEW_PARTS_FIELD_DESC = new org.apache.thrift.protocol.TField("new_parts", org.apache.thrift.protocol.TType.LIST, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new alter_partitions_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new alter_partitions_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private @org.apache.thrift.annotation.Nullable java.util.List<Partition> new_parts; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TBL_NAME((short)2, "tbl_name"),
      NEW_PARTS((short)3, "new_parts");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // NEW_PARTS
            return NEW_PARTS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.NEW_PARTS, new org.apache.thrift.meta_data.FieldMetaData("new_parts", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Partition.class))));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(alter_partitions_args.class, metaDataMap);
    }

    public alter_partitions_args() {
    }

    public alter_partitions_args(
      java.lang.String db_name,
      java.lang.String tbl_name,
      java.util.List<Partition> new_parts)
    {
      this();
      this.db_name = db_name;
      this.tbl_name = tbl_name;
      this.new_parts = new_parts;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public alter_partitions_args(alter_partitions_args other) {
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      if (other.isSetNew_parts()) {
        java.util.List<Partition> __this__new_parts = new java.util.ArrayList<Partition>(other.new_parts.size());
        for (Partition other_element : other.new_parts) {
          __this__new_parts.add(new Partition(other_element));
        }
        this.new_parts = __this__new_parts;
      }
    }

    public alter_partitions_args deepCopy() {
      return new alter_partitions_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.tbl_name = null;
      this.new_parts = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    public int getNew_partsSize() {
      return (this.new_parts == null) ? 0 : this.new_parts.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<Partition> getNew_partsIterator() {
      return (this.new_parts == null) ? null : this.new_parts.iterator();
    }

    public void addToNew_parts(Partition elem) {
      if (this.new_parts == null) {
        this.new_parts = new java.util.ArrayList<Partition>();
      }
      this.new_parts.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<Partition> getNew_parts() {
      return this.new_parts;
    }

    public void setNew_parts(@org.apache.thrift.annotation.Nullable java.util.List<Partition> new_parts) {
      this.new_parts = new_parts;
    }

    public void unsetNew_parts() {
      this.new_parts = null;
    }

    /** Returns true if field new_parts is set (has been assigned a value) and false otherwise */
    public boolean isSetNew_parts() {
      return this.new_parts != null;
    }

    public void setNew_partsIsSet(boolean value) {
      if (!value) {
        this.new_parts = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case NEW_PARTS:
        if (value == null) {
          unsetNew_parts();
        } else {
          setNew_parts((java.util.List<Partition>)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TBL_NAME:
        return getTbl_name();

      case NEW_PARTS:
        return getNew_parts();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TBL_NAME:
        return isSetTbl_name();
      case NEW_PARTS:
        return isSetNew_parts();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof alter_partitions_args)
        return this.equals((alter_partitions_args)that);
      return false;
    }

    public boolean equals(alter_partitions_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_new_parts = true && this.isSetNew_parts();
      boolean that_present_new_parts = true && that.isSetNew_parts();
      if (this_present_new_parts || that_present_new_parts) {
        if (!(this_present_new_parts && that_present_new_parts))
          return false;
        if (!this.new_parts.equals(that.new_parts))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetNew_parts()) ? 131071 : 524287);
      if (isSetNew_parts())
        hashCode = hashCode * 8191 + new_parts.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(alter_partitions_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetNew_parts(), other.isSetNew_parts());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetNew_parts()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.new_parts, other.new_parts);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("alter_partitions_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("new_parts:");
      if (this.new_parts == null) {
        sb.append("null");
      } else {
        sb.append(this.new_parts);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class alter_partitions_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_partitions_argsStandardScheme getScheme() {
        return new alter_partitions_argsStandardScheme();
      }
    }

    private static class alter_partitions_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<alter_partitions_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, alter_partitions_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // NEW_PARTS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1334 = iprot.readListBegin();
                  struct.new_parts = new java.util.ArrayList<Partition>(_list1334.size);
                  @org.apache.thrift.annotation.Nullable Partition _elem1335;
                  for (int _i1336 = 0; _i1336 < _list1334.size; ++_i1336)
                  {
                    _elem1335 = new Partition();
                    _elem1335.read(iprot);
                    struct.new_parts.add(_elem1335);
                  }
                  iprot.readListEnd();
                }
                struct.setNew_partsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, alter_partitions_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        if (struct.new_parts != null) {
          oprot.writeFieldBegin(NEW_PARTS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.new_parts.size()));
            for (Partition _iter1337 : struct.new_parts)
            {
              _iter1337.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class alter_partitions_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_partitions_argsTupleScheme getScheme() {
        return new alter_partitions_argsTupleScheme();
      }
    }

    private static class alter_partitions_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<alter_partitions_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, alter_partitions_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetNew_parts()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetNew_parts()) {
          {
            oprot.writeI32(struct.new_parts.size());
            for (Partition _iter1338 : struct.new_parts)
            {
              _iter1338.write(oprot);
            }
          }
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, alter_partitions_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          {
            org.apache.thrift.protocol.TList _list1339 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
            struct.new_parts = new java.util.ArrayList<Partition>(_list1339.size);
            @org.apache.thrift.annotation.Nullable Partition _elem1340;
            for (int _i1341 = 0; _i1341 < _list1339.size; ++_i1341)
            {
              _elem1340 = new Partition();
              _elem1340.read(iprot);
              struct.new_parts.add(_elem1340);
            }
          }
          struct.setNew_partsIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_partitions_result implements org.apache.thrift.TBase<alter_partitions_result, alter_partitions_result._Fields>, java.io.Serializable, Cloneable, Comparable<alter_partitions_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("alter_partitions_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new alter_partitions_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new alter_partitions_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable InvalidOperationException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidOperationException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(alter_partitions_result.class, metaDataMap);
    }

    public alter_partitions_result() {
    }

    public alter_partitions_result(
      InvalidOperationException o1,
      MetaException o2)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public alter_partitions_result(alter_partitions_result other) {
      if (other.isSetO1()) {
        this.o1 = new InvalidOperationException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public alter_partitions_result deepCopy() {
      return new alter_partitions_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidOperationException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable InvalidOperationException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((InvalidOperationException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof alter_partitions_result)
        return this.equals((alter_partitions_result)that);
      return false;
    }

    public boolean equals(alter_partitions_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(alter_partitions_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("alter_partitions_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class alter_partitions_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_partitions_resultStandardScheme getScheme() {
        return new alter_partitions_resultStandardScheme();
      }
    }

    private static class alter_partitions_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<alter_partitions_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, alter_partitions_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new InvalidOperationException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, alter_partitions_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class alter_partitions_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_partitions_resultTupleScheme getScheme() {
        return new alter_partitions_resultTupleScheme();
      }
    }

    private static class alter_partitions_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<alter_partitions_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, alter_partitions_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, alter_partitions_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.o1 = new InvalidOperationException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_partitions_with_environment_context_args implements org.apache.thrift.TBase<alter_partitions_with_environment_context_args, alter_partitions_with_environment_context_args._Fields>, java.io.Serializable, Cloneable, Comparable<alter_partitions_with_environment_context_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("alter_partitions_with_environment_context_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField NEW_PARTS_FIELD_DESC = new org.apache.thrift.protocol.TField("new_parts", org.apache.thrift.protocol.TType.LIST, (short)3);
    private static final org.apache.thrift.protocol.TField ENVIRONMENT_CONTEXT_FIELD_DESC = new org.apache.thrift.protocol.TField("environment_context", org.apache.thrift.protocol.TType.STRUCT, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new alter_partitions_with_environment_context_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new alter_partitions_with_environment_context_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private @org.apache.thrift.annotation.Nullable java.util.List<Partition> new_parts; // required
    private @org.apache.thrift.annotation.Nullable EnvironmentContext environment_context; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TBL_NAME((short)2, "tbl_name"),
      NEW_PARTS((short)3, "new_parts"),
      ENVIRONMENT_CONTEXT((short)4, "environment_context");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // NEW_PARTS
            return NEW_PARTS;
          case 4: // ENVIRONMENT_CONTEXT
            return ENVIRONMENT_CONTEXT;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.NEW_PARTS, new org.apache.thrift.meta_data.FieldMetaData("new_parts", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Partition.class))));
      tmpMap.put(_Fields.ENVIRONMENT_CONTEXT, new org.apache.thrift.meta_data.FieldMetaData("environment_context", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, EnvironmentContext.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(alter_partitions_with_environment_context_args.class, metaDataMap);
    }

    public alter_partitions_with_environment_context_args() {
    }

    public alter_partitions_with_environment_context_args(
      java.lang.String db_name,
      java.lang.String tbl_name,
      java.util.List<Partition> new_parts,
      EnvironmentContext environment_context)
    {
      this();
      this.db_name = db_name;
      this.tbl_name = tbl_name;
      this.new_parts = new_parts;
      this.environment_context = environment_context;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public alter_partitions_with_environment_context_args(alter_partitions_with_environment_context_args other) {
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      if (other.isSetNew_parts()) {
        java.util.List<Partition> __this__new_parts = new java.util.ArrayList<Partition>(other.new_parts.size());
        for (Partition other_element : other.new_parts) {
          __this__new_parts.add(new Partition(other_element));
        }
        this.new_parts = __this__new_parts;
      }
      if (other.isSetEnvironment_context()) {
        this.environment_context = new EnvironmentContext(other.environment_context);
      }
    }

    public alter_partitions_with_environment_context_args deepCopy() {
      return new alter_partitions_with_environment_context_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.tbl_name = null;
      this.new_parts = null;
      this.environment_context = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    public int getNew_partsSize() {
      return (this.new_parts == null) ? 0 : this.new_parts.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<Partition> getNew_partsIterator() {
      return (this.new_parts == null) ? null : this.new_parts.iterator();
    }

    public void addToNew_parts(Partition elem) {
      if (this.new_parts == null) {
        this.new_parts = new java.util.ArrayList<Partition>();
      }
      this.new_parts.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<Partition> getNew_parts() {
      return this.new_parts;
    }

    public void setNew_parts(@org.apache.thrift.annotation.Nullable java.util.List<Partition> new_parts) {
      this.new_parts = new_parts;
    }

    public void unsetNew_parts() {
      this.new_parts = null;
    }

    /** Returns true if field new_parts is set (has been assigned a value) and false otherwise */
    public boolean isSetNew_parts() {
      return this.new_parts != null;
    }

    public void setNew_partsIsSet(boolean value) {
      if (!value) {
        this.new_parts = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public EnvironmentContext getEnvironment_context() {
      return this.environment_context;
    }

    public void setEnvironment_context(@org.apache.thrift.annotation.Nullable EnvironmentContext environment_context) {
      this.environment_context = environment_context;
    }

    public void unsetEnvironment_context() {
      this.environment_context = null;
    }

    /** Returns true if field environment_context is set (has been assigned a value) and false otherwise */
    public boolean isSetEnvironment_context() {
      return this.environment_context != null;
    }

    public void setEnvironment_contextIsSet(boolean value) {
      if (!value) {
        this.environment_context = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case NEW_PARTS:
        if (value == null) {
          unsetNew_parts();
        } else {
          setNew_parts((java.util.List<Partition>)value);
        }
        break;

      case ENVIRONMENT_CONTEXT:
        if (value == null) {
          unsetEnvironment_context();
        } else {
          setEnvironment_context((EnvironmentContext)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TBL_NAME:
        return getTbl_name();

      case NEW_PARTS:
        return getNew_parts();

      case ENVIRONMENT_CONTEXT:
        return getEnvironment_context();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TBL_NAME:
        return isSetTbl_name();
      case NEW_PARTS:
        return isSetNew_parts();
      case ENVIRONMENT_CONTEXT:
        return isSetEnvironment_context();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof alter_partitions_with_environment_context_args)
        return this.equals((alter_partitions_with_environment_context_args)that);
      return false;
    }

    public boolean equals(alter_partitions_with_environment_context_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_new_parts = true && this.isSetNew_parts();
      boolean that_present_new_parts = true && that.isSetNew_parts();
      if (this_present_new_parts || that_present_new_parts) {
        if (!(this_present_new_parts && that_present_new_parts))
          return false;
        if (!this.new_parts.equals(that.new_parts))
          return false;
      }

      boolean this_present_environment_context = true && this.isSetEnvironment_context();
      boolean that_present_environment_context = true && that.isSetEnvironment_context();
      if (this_present_environment_context || that_present_environment_context) {
        if (!(this_present_environment_context && that_present_environment_context))
          return false;
        if (!this.environment_context.equals(that.environment_context))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetNew_parts()) ? 131071 : 524287);
      if (isSetNew_parts())
        hashCode = hashCode * 8191 + new_parts.hashCode();

      hashCode = hashCode * 8191 + ((isSetEnvironment_context()) ? 131071 : 524287);
      if (isSetEnvironment_context())
        hashCode = hashCode * 8191 + environment_context.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(alter_partitions_with_environment_context_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetNew_parts(), other.isSetNew_parts());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetNew_parts()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.new_parts, other.new_parts);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetEnvironment_context(), other.isSetEnvironment_context());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEnvironment_context()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.environment_context, other.environment_context);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("alter_partitions_with_environment_context_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("new_parts:");
      if (this.new_parts == null) {
        sb.append("null");
      } else {
        sb.append(this.new_parts);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("environment_context:");
      if (this.environment_context == null) {
        sb.append("null");
      } else {
        sb.append(this.environment_context);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (environment_context != null) {
        environment_context.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class alter_partitions_with_environment_context_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_partitions_with_environment_context_argsStandardScheme getScheme() {
        return new alter_partitions_with_environment_context_argsStandardScheme();
      }
    }

    private static class alter_partitions_with_environment_context_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<alter_partitions_with_environment_context_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, alter_partitions_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // NEW_PARTS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1342 = iprot.readListBegin();
                  struct.new_parts = new java.util.ArrayList<Partition>(_list1342.size);
                  @org.apache.thrift.annotation.Nullable Partition _elem1343;
                  for (int _i1344 = 0; _i1344 < _list1342.size; ++_i1344)
                  {
                    _elem1343 = new Partition();
                    _elem1343.read(iprot);
                    struct.new_parts.add(_elem1343);
                  }
                  iprot.readListEnd();
                }
                struct.setNew_partsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // ENVIRONMENT_CONTEXT
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.environment_context = new EnvironmentContext();
                struct.environment_context.read(iprot);
                struct.setEnvironment_contextIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, alter_partitions_with_environment_context_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        if (struct.new_parts != null) {
          oprot.writeFieldBegin(NEW_PARTS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.new_parts.size()));
            for (Partition _iter1345 : struct.new_parts)
            {
              _iter1345.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.environment_context != null) {
          oprot.writeFieldBegin(ENVIRONMENT_CONTEXT_FIELD_DESC);
          struct.environment_context.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class alter_partitions_with_environment_context_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_partitions_with_environment_context_argsTupleScheme getScheme() {
        return new alter_partitions_with_environment_context_argsTupleScheme();
      }
    }

    private static class alter_partitions_with_environment_context_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<alter_partitions_with_environment_context_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, alter_partitions_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetNew_parts()) {
          optionals.set(2);
        }
        if (struct.isSetEnvironment_context()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetNew_parts()) {
          {
            oprot.writeI32(struct.new_parts.size());
            for (Partition _iter1346 : struct.new_parts)
            {
              _iter1346.write(oprot);
            }
          }
        }
        if (struct.isSetEnvironment_context()) {
          struct.environment_context.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, alter_partitions_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          {
            org.apache.thrift.protocol.TList _list1347 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
            struct.new_parts = new java.util.ArrayList<Partition>(_list1347.size);
            @org.apache.thrift.annotation.Nullable Partition _elem1348;
            for (int _i1349 = 0; _i1349 < _list1347.size; ++_i1349)
            {
              _elem1348 = new Partition();
              _elem1348.read(iprot);
              struct.new_parts.add(_elem1348);
            }
          }
          struct.setNew_partsIsSet(true);
        }
        if (incoming.get(3)) {
          struct.environment_context = new EnvironmentContext();
          struct.environment_context.read(iprot);
          struct.setEnvironment_contextIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_partitions_with_environment_context_result implements org.apache.thrift.TBase<alter_partitions_with_environment_context_result, alter_partitions_with_environment_context_result._Fields>, java.io.Serializable, Cloneable, Comparable<alter_partitions_with_environment_context_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("alter_partitions_with_environment_context_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new alter_partitions_with_environment_context_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new alter_partitions_with_environment_context_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable InvalidOperationException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidOperationException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(alter_partitions_with_environment_context_result.class, metaDataMap);
    }

    public alter_partitions_with_environment_context_result() {
    }

    public alter_partitions_with_environment_context_result(
      InvalidOperationException o1,
      MetaException o2)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public alter_partitions_with_environment_context_result(alter_partitions_with_environment_context_result other) {
      if (other.isSetO1()) {
        this.o1 = new InvalidOperationException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public alter_partitions_with_environment_context_result deepCopy() {
      return new alter_partitions_with_environment_context_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidOperationException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable InvalidOperationException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((InvalidOperationException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof alter_partitions_with_environment_context_result)
        return this.equals((alter_partitions_with_environment_context_result)that);
      return false;
    }

    public boolean equals(alter_partitions_with_environment_context_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(alter_partitions_with_environment_context_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("alter_partitions_with_environment_context_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class alter_partitions_with_environment_context_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_partitions_with_environment_context_resultStandardScheme getScheme() {
        return new alter_partitions_with_environment_context_resultStandardScheme();
      }
    }

    private static class alter_partitions_with_environment_context_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<alter_partitions_with_environment_context_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, alter_partitions_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new InvalidOperationException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, alter_partitions_with_environment_context_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class alter_partitions_with_environment_context_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_partitions_with_environment_context_resultTupleScheme getScheme() {
        return new alter_partitions_with_environment_context_resultTupleScheme();
      }
    }

    private static class alter_partitions_with_environment_context_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<alter_partitions_with_environment_context_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, alter_partitions_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, alter_partitions_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.o1 = new InvalidOperationException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_partition_with_environment_context_args implements org.apache.thrift.TBase<alter_partition_with_environment_context_args, alter_partition_with_environment_context_args._Fields>, java.io.Serializable, Cloneable, Comparable<alter_partition_with_environment_context_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("alter_partition_with_environment_context_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField NEW_PART_FIELD_DESC = new org.apache.thrift.protocol.TField("new_part", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField ENVIRONMENT_CONTEXT_FIELD_DESC = new org.apache.thrift.protocol.TField("environment_context", org.apache.thrift.protocol.TType.STRUCT, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new alter_partition_with_environment_context_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new alter_partition_with_environment_context_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private @org.apache.thrift.annotation.Nullable Partition new_part; // required
    private @org.apache.thrift.annotation.Nullable EnvironmentContext environment_context; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TBL_NAME((short)2, "tbl_name"),
      NEW_PART((short)3, "new_part"),
      ENVIRONMENT_CONTEXT((short)4, "environment_context");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // NEW_PART
            return NEW_PART;
          case 4: // ENVIRONMENT_CONTEXT
            return ENVIRONMENT_CONTEXT;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.NEW_PART, new org.apache.thrift.meta_data.FieldMetaData("new_part", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Partition.class)));
      tmpMap.put(_Fields.ENVIRONMENT_CONTEXT, new org.apache.thrift.meta_data.FieldMetaData("environment_context", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, EnvironmentContext.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(alter_partition_with_environment_context_args.class, metaDataMap);
    }

    public alter_partition_with_environment_context_args() {
    }

    public alter_partition_with_environment_context_args(
      java.lang.String db_name,
      java.lang.String tbl_name,
      Partition new_part,
      EnvironmentContext environment_context)
    {
      this();
      this.db_name = db_name;
      this.tbl_name = tbl_name;
      this.new_part = new_part;
      this.environment_context = environment_context;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public alter_partition_with_environment_context_args(alter_partition_with_environment_context_args other) {
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      if (other.isSetNew_part()) {
        this.new_part = new Partition(other.new_part);
      }
      if (other.isSetEnvironment_context()) {
        this.environment_context = new EnvironmentContext(other.environment_context);
      }
    }

    public alter_partition_with_environment_context_args deepCopy() {
      return new alter_partition_with_environment_context_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.tbl_name = null;
      this.new_part = null;
      this.environment_context = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public Partition getNew_part() {
      return this.new_part;
    }

    public void setNew_part(@org.apache.thrift.annotation.Nullable Partition new_part) {
      this.new_part = new_part;
    }

    public void unsetNew_part() {
      this.new_part = null;
    }

    /** Returns true if field new_part is set (has been assigned a value) and false otherwise */
    public boolean isSetNew_part() {
      return this.new_part != null;
    }

    public void setNew_partIsSet(boolean value) {
      if (!value) {
        this.new_part = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public EnvironmentContext getEnvironment_context() {
      return this.environment_context;
    }

    public void setEnvironment_context(@org.apache.thrift.annotation.Nullable EnvironmentContext environment_context) {
      this.environment_context = environment_context;
    }

    public void unsetEnvironment_context() {
      this.environment_context = null;
    }

    /** Returns true if field environment_context is set (has been assigned a value) and false otherwise */
    public boolean isSetEnvironment_context() {
      return this.environment_context != null;
    }

    public void setEnvironment_contextIsSet(boolean value) {
      if (!value) {
        this.environment_context = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case NEW_PART:
        if (value == null) {
          unsetNew_part();
        } else {
          setNew_part((Partition)value);
        }
        break;

      case ENVIRONMENT_CONTEXT:
        if (value == null) {
          unsetEnvironment_context();
        } else {
          setEnvironment_context((EnvironmentContext)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TBL_NAME:
        return getTbl_name();

      case NEW_PART:
        return getNew_part();

      case ENVIRONMENT_CONTEXT:
        return getEnvironment_context();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TBL_NAME:
        return isSetTbl_name();
      case NEW_PART:
        return isSetNew_part();
      case ENVIRONMENT_CONTEXT:
        return isSetEnvironment_context();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof alter_partition_with_environment_context_args)
        return this.equals((alter_partition_with_environment_context_args)that);
      return false;
    }

    public boolean equals(alter_partition_with_environment_context_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_new_part = true && this.isSetNew_part();
      boolean that_present_new_part = true && that.isSetNew_part();
      if (this_present_new_part || that_present_new_part) {
        if (!(this_present_new_part && that_present_new_part))
          return false;
        if (!this.new_part.equals(that.new_part))
          return false;
      }

      boolean this_present_environment_context = true && this.isSetEnvironment_context();
      boolean that_present_environment_context = true && that.isSetEnvironment_context();
      if (this_present_environment_context || that_present_environment_context) {
        if (!(this_present_environment_context && that_present_environment_context))
          return false;
        if (!this.environment_context.equals(that.environment_context))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetNew_part()) ? 131071 : 524287);
      if (isSetNew_part())
        hashCode = hashCode * 8191 + new_part.hashCode();

      hashCode = hashCode * 8191 + ((isSetEnvironment_context()) ? 131071 : 524287);
      if (isSetEnvironment_context())
        hashCode = hashCode * 8191 + environment_context.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(alter_partition_with_environment_context_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetNew_part(), other.isSetNew_part());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetNew_part()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.new_part, other.new_part);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetEnvironment_context(), other.isSetEnvironment_context());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEnvironment_context()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.environment_context, other.environment_context);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("alter_partition_with_environment_context_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("new_part:");
      if (this.new_part == null) {
        sb.append("null");
      } else {
        sb.append(this.new_part);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("environment_context:");
      if (this.environment_context == null) {
        sb.append("null");
      } else {
        sb.append(this.environment_context);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (new_part != null) {
        new_part.validate();
      }
      if (environment_context != null) {
        environment_context.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class alter_partition_with_environment_context_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_partition_with_environment_context_argsStandardScheme getScheme() {
        return new alter_partition_with_environment_context_argsStandardScheme();
      }
    }

    private static class alter_partition_with_environment_context_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<alter_partition_with_environment_context_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, alter_partition_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // NEW_PART
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.new_part = new Partition();
                struct.new_part.read(iprot);
                struct.setNew_partIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // ENVIRONMENT_CONTEXT
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.environment_context = new EnvironmentContext();
                struct.environment_context.read(iprot);
                struct.setEnvironment_contextIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, alter_partition_with_environment_context_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        if (struct.new_part != null) {
          oprot.writeFieldBegin(NEW_PART_FIELD_DESC);
          struct.new_part.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.environment_context != null) {
          oprot.writeFieldBegin(ENVIRONMENT_CONTEXT_FIELD_DESC);
          struct.environment_context.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class alter_partition_with_environment_context_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_partition_with_environment_context_argsTupleScheme getScheme() {
        return new alter_partition_with_environment_context_argsTupleScheme();
      }
    }

    private static class alter_partition_with_environment_context_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<alter_partition_with_environment_context_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, alter_partition_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetNew_part()) {
          optionals.set(2);
        }
        if (struct.isSetEnvironment_context()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetNew_part()) {
          struct.new_part.write(oprot);
        }
        if (struct.isSetEnvironment_context()) {
          struct.environment_context.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, alter_partition_with_environment_context_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.new_part = new Partition();
          struct.new_part.read(iprot);
          struct.setNew_partIsSet(true);
        }
        if (incoming.get(3)) {
          struct.environment_context = new EnvironmentContext();
          struct.environment_context.read(iprot);
          struct.setEnvironment_contextIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_partition_with_environment_context_result implements org.apache.thrift.TBase<alter_partition_with_environment_context_result, alter_partition_with_environment_context_result._Fields>, java.io.Serializable, Cloneable, Comparable<alter_partition_with_environment_context_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("alter_partition_with_environment_context_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new alter_partition_with_environment_context_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new alter_partition_with_environment_context_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable InvalidOperationException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidOperationException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(alter_partition_with_environment_context_result.class, metaDataMap);
    }

    public alter_partition_with_environment_context_result() {
    }

    public alter_partition_with_environment_context_result(
      InvalidOperationException o1,
      MetaException o2)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public alter_partition_with_environment_context_result(alter_partition_with_environment_context_result other) {
      if (other.isSetO1()) {
        this.o1 = new InvalidOperationException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public alter_partition_with_environment_context_result deepCopy() {
      return new alter_partition_with_environment_context_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidOperationException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable InvalidOperationException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((InvalidOperationException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof alter_partition_with_environment_context_result)
        return this.equals((alter_partition_with_environment_context_result)that);
      return false;
    }

    public boolean equals(alter_partition_with_environment_context_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(alter_partition_with_environment_context_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("alter_partition_with_environment_context_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class alter_partition_with_environment_context_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_partition_with_environment_context_resultStandardScheme getScheme() {
        return new alter_partition_with_environment_context_resultStandardScheme();
      }
    }

    private static class alter_partition_with_environment_context_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<alter_partition_with_environment_context_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, alter_partition_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new InvalidOperationException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, alter_partition_with_environment_context_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class alter_partition_with_environment_context_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_partition_with_environment_context_resultTupleScheme getScheme() {
        return new alter_partition_with_environment_context_resultTupleScheme();
      }
    }

    private static class alter_partition_with_environment_context_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<alter_partition_with_environment_context_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, alter_partition_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, alter_partition_with_environment_context_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.o1 = new InvalidOperationException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class rename_partition_args implements org.apache.thrift.TBase<rename_partition_args, rename_partition_args._Fields>, java.io.Serializable, Cloneable, Comparable<rename_partition_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("rename_partition_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField PART_VALS_FIELD_DESC = new org.apache.thrift.protocol.TField("part_vals", org.apache.thrift.protocol.TType.LIST, (short)3);
    private static final org.apache.thrift.protocol.TField NEW_PART_FIELD_DESC = new org.apache.thrift.protocol.TField("new_part", org.apache.thrift.protocol.TType.STRUCT, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new rename_partition_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new rename_partition_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> part_vals; // required
    private @org.apache.thrift.annotation.Nullable Partition new_part; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TBL_NAME((short)2, "tbl_name"),
      PART_VALS((short)3, "part_vals"),
      NEW_PART((short)4, "new_part");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // PART_VALS
            return PART_VALS;
          case 4: // NEW_PART
            return NEW_PART;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PART_VALS, new org.apache.thrift.meta_data.FieldMetaData("part_vals", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      tmpMap.put(_Fields.NEW_PART, new org.apache.thrift.meta_data.FieldMetaData("new_part", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Partition.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(rename_partition_args.class, metaDataMap);
    }

    public rename_partition_args() {
    }

    public rename_partition_args(
      java.lang.String db_name,
      java.lang.String tbl_name,
      java.util.List<java.lang.String> part_vals,
      Partition new_part)
    {
      this();
      this.db_name = db_name;
      this.tbl_name = tbl_name;
      this.part_vals = part_vals;
      this.new_part = new_part;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public rename_partition_args(rename_partition_args other) {
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      if (other.isSetPart_vals()) {
        java.util.List<java.lang.String> __this__part_vals = new java.util.ArrayList<java.lang.String>(other.part_vals);
        this.part_vals = __this__part_vals;
      }
      if (other.isSetNew_part()) {
        this.new_part = new Partition(other.new_part);
      }
    }

    public rename_partition_args deepCopy() {
      return new rename_partition_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.tbl_name = null;
      this.part_vals = null;
      this.new_part = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    public int getPart_valsSize() {
      return (this.part_vals == null) ? 0 : this.part_vals.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getPart_valsIterator() {
      return (this.part_vals == null) ? null : this.part_vals.iterator();
    }

    public void addToPart_vals(java.lang.String elem) {
      if (this.part_vals == null) {
        this.part_vals = new java.util.ArrayList<java.lang.String>();
      }
      this.part_vals.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getPart_vals() {
      return this.part_vals;
    }

    public void setPart_vals(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> part_vals) {
      this.part_vals = part_vals;
    }

    public void unsetPart_vals() {
      this.part_vals = null;
    }

    /** Returns true if field part_vals is set (has been assigned a value) and false otherwise */
    public boolean isSetPart_vals() {
      return this.part_vals != null;
    }

    public void setPart_valsIsSet(boolean value) {
      if (!value) {
        this.part_vals = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public Partition getNew_part() {
      return this.new_part;
    }

    public void setNew_part(@org.apache.thrift.annotation.Nullable Partition new_part) {
      this.new_part = new_part;
    }

    public void unsetNew_part() {
      this.new_part = null;
    }

    /** Returns true if field new_part is set (has been assigned a value) and false otherwise */
    public boolean isSetNew_part() {
      return this.new_part != null;
    }

    public void setNew_partIsSet(boolean value) {
      if (!value) {
        this.new_part = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case PART_VALS:
        if (value == null) {
          unsetPart_vals();
        } else {
          setPart_vals((java.util.List<java.lang.String>)value);
        }
        break;

      case NEW_PART:
        if (value == null) {
          unsetNew_part();
        } else {
          setNew_part((Partition)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TBL_NAME:
        return getTbl_name();

      case PART_VALS:
        return getPart_vals();

      case NEW_PART:
        return getNew_part();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TBL_NAME:
        return isSetTbl_name();
      case PART_VALS:
        return isSetPart_vals();
      case NEW_PART:
        return isSetNew_part();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof rename_partition_args)
        return this.equals((rename_partition_args)that);
      return false;
    }

    public boolean equals(rename_partition_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_part_vals = true && this.isSetPart_vals();
      boolean that_present_part_vals = true && that.isSetPart_vals();
      if (this_present_part_vals || that_present_part_vals) {
        if (!(this_present_part_vals && that_present_part_vals))
          return false;
        if (!this.part_vals.equals(that.part_vals))
          return false;
      }

      boolean this_present_new_part = true && this.isSetNew_part();
      boolean that_present_new_part = true && that.isSetNew_part();
      if (this_present_new_part || that_present_new_part) {
        if (!(this_present_new_part && that_present_new_part))
          return false;
        if (!this.new_part.equals(that.new_part))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetPart_vals()) ? 131071 : 524287);
      if (isSetPart_vals())
        hashCode = hashCode * 8191 + part_vals.hashCode();

      hashCode = hashCode * 8191 + ((isSetNew_part()) ? 131071 : 524287);
      if (isSetNew_part())
        hashCode = hashCode * 8191 + new_part.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(rename_partition_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetPart_vals(), other.isSetPart_vals());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPart_vals()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.part_vals, other.part_vals);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetNew_part(), other.isSetNew_part());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetNew_part()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.new_part, other.new_part);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("rename_partition_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("part_vals:");
      if (this.part_vals == null) {
        sb.append("null");
      } else {
        sb.append(this.part_vals);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("new_part:");
      if (this.new_part == null) {
        sb.append("null");
      } else {
        sb.append(this.new_part);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (new_part != null) {
        new_part.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class rename_partition_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public rename_partition_argsStandardScheme getScheme() {
        return new rename_partition_argsStandardScheme();
      }
    }

    private static class rename_partition_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<rename_partition_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, rename_partition_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // PART_VALS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1350 = iprot.readListBegin();
                  struct.part_vals = new java.util.ArrayList<java.lang.String>(_list1350.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem1351;
                  for (int _i1352 = 0; _i1352 < _list1350.size; ++_i1352)
                  {
                    _elem1351 = iprot.readString();
                    struct.part_vals.add(_elem1351);
                  }
                  iprot.readListEnd();
                }
                struct.setPart_valsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // NEW_PART
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.new_part = new Partition();
                struct.new_part.read(iprot);
                struct.setNew_partIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, rename_partition_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        if (struct.part_vals != null) {
          oprot.writeFieldBegin(PART_VALS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.part_vals.size()));
            for (java.lang.String _iter1353 : struct.part_vals)
            {
              oprot.writeString(_iter1353);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.new_part != null) {
          oprot.writeFieldBegin(NEW_PART_FIELD_DESC);
          struct.new_part.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class rename_partition_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public rename_partition_argsTupleScheme getScheme() {
        return new rename_partition_argsTupleScheme();
      }
    }

    private static class rename_partition_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<rename_partition_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, rename_partition_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetPart_vals()) {
          optionals.set(2);
        }
        if (struct.isSetNew_part()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetPart_vals()) {
          {
            oprot.writeI32(struct.part_vals.size());
            for (java.lang.String _iter1354 : struct.part_vals)
            {
              oprot.writeString(_iter1354);
            }
          }
        }
        if (struct.isSetNew_part()) {
          struct.new_part.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, rename_partition_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          {
            org.apache.thrift.protocol.TList _list1355 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.part_vals = new java.util.ArrayList<java.lang.String>(_list1355.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem1356;
            for (int _i1357 = 0; _i1357 < _list1355.size; ++_i1357)
            {
              _elem1356 = iprot.readString();
              struct.part_vals.add(_elem1356);
            }
          }
          struct.setPart_valsIsSet(true);
        }
        if (incoming.get(3)) {
          struct.new_part = new Partition();
          struct.new_part.read(iprot);
          struct.setNew_partIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class rename_partition_result implements org.apache.thrift.TBase<rename_partition_result, rename_partition_result._Fields>, java.io.Serializable, Cloneable, Comparable<rename_partition_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("rename_partition_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new rename_partition_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new rename_partition_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable InvalidOperationException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidOperationException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(rename_partition_result.class, metaDataMap);
    }

    public rename_partition_result() {
    }

    public rename_partition_result(
      InvalidOperationException o1,
      MetaException o2)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public rename_partition_result(rename_partition_result other) {
      if (other.isSetO1()) {
        this.o1 = new InvalidOperationException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public rename_partition_result deepCopy() {
      return new rename_partition_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidOperationException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable InvalidOperationException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((InvalidOperationException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof rename_partition_result)
        return this.equals((rename_partition_result)that);
      return false;
    }

    public boolean equals(rename_partition_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(rename_partition_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("rename_partition_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class rename_partition_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public rename_partition_resultStandardScheme getScheme() {
        return new rename_partition_resultStandardScheme();
      }
    }

    private static class rename_partition_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<rename_partition_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, rename_partition_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new InvalidOperationException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, rename_partition_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class rename_partition_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public rename_partition_resultTupleScheme getScheme() {
        return new rename_partition_resultTupleScheme();
      }
    }

    private static class rename_partition_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<rename_partition_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, rename_partition_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, rename_partition_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.o1 = new InvalidOperationException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class partition_name_has_valid_characters_args implements org.apache.thrift.TBase<partition_name_has_valid_characters_args, partition_name_has_valid_characters_args._Fields>, java.io.Serializable, Cloneable, Comparable<partition_name_has_valid_characters_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("partition_name_has_valid_characters_args");

    private static final org.apache.thrift.protocol.TField PART_VALS_FIELD_DESC = new org.apache.thrift.protocol.TField("part_vals", org.apache.thrift.protocol.TType.LIST, (short)1);
    private static final org.apache.thrift.protocol.TField THROW_EXCEPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("throw_exception", org.apache.thrift.protocol.TType.BOOL, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new partition_name_has_valid_characters_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new partition_name_has_valid_characters_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> part_vals; // required
    private boolean throw_exception; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      PART_VALS((short)1, "part_vals"),
      THROW_EXCEPTION((short)2, "throw_exception");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // PART_VALS
            return PART_VALS;
          case 2: // THROW_EXCEPTION
            return THROW_EXCEPTION;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __THROW_EXCEPTION_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.PART_VALS, new org.apache.thrift.meta_data.FieldMetaData("part_vals", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      tmpMap.put(_Fields.THROW_EXCEPTION, new org.apache.thrift.meta_data.FieldMetaData("throw_exception", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(partition_name_has_valid_characters_args.class, metaDataMap);
    }

    public partition_name_has_valid_characters_args() {
    }

    public partition_name_has_valid_characters_args(
      java.util.List<java.lang.String> part_vals,
      boolean throw_exception)
    {
      this();
      this.part_vals = part_vals;
      this.throw_exception = throw_exception;
      setThrow_exceptionIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public partition_name_has_valid_characters_args(partition_name_has_valid_characters_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetPart_vals()) {
        java.util.List<java.lang.String> __this__part_vals = new java.util.ArrayList<java.lang.String>(other.part_vals);
        this.part_vals = __this__part_vals;
      }
      this.throw_exception = other.throw_exception;
    }

    public partition_name_has_valid_characters_args deepCopy() {
      return new partition_name_has_valid_characters_args(this);
    }

    @Override
    public void clear() {
      this.part_vals = null;
      setThrow_exceptionIsSet(false);
      this.throw_exception = false;
    }

    public int getPart_valsSize() {
      return (this.part_vals == null) ? 0 : this.part_vals.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getPart_valsIterator() {
      return (this.part_vals == null) ? null : this.part_vals.iterator();
    }

    public void addToPart_vals(java.lang.String elem) {
      if (this.part_vals == null) {
        this.part_vals = new java.util.ArrayList<java.lang.String>();
      }
      this.part_vals.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getPart_vals() {
      return this.part_vals;
    }

    public void setPart_vals(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> part_vals) {
      this.part_vals = part_vals;
    }

    public void unsetPart_vals() {
      this.part_vals = null;
    }

    /** Returns true if field part_vals is set (has been assigned a value) and false otherwise */
    public boolean isSetPart_vals() {
      return this.part_vals != null;
    }

    public void setPart_valsIsSet(boolean value) {
      if (!value) {
        this.part_vals = null;
      }
    }

    public boolean isThrow_exception() {
      return this.throw_exception;
    }

    public void setThrow_exception(boolean throw_exception) {
      this.throw_exception = throw_exception;
      setThrow_exceptionIsSet(true);
    }

    public void unsetThrow_exception() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __THROW_EXCEPTION_ISSET_ID);
    }

    /** Returns true if field throw_exception is set (has been assigned a value) and false otherwise */
    public boolean isSetThrow_exception() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __THROW_EXCEPTION_ISSET_ID);
    }

    public void setThrow_exceptionIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __THROW_EXCEPTION_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case PART_VALS:
        if (value == null) {
          unsetPart_vals();
        } else {
          setPart_vals((java.util.List<java.lang.String>)value);
        }
        break;

      case THROW_EXCEPTION:
        if (value == null) {
          unsetThrow_exception();
        } else {
          setThrow_exception((java.lang.Boolean)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case PART_VALS:
        return getPart_vals();

      case THROW_EXCEPTION:
        return isThrow_exception();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case PART_VALS:
        return isSetPart_vals();
      case THROW_EXCEPTION:
        return isSetThrow_exception();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof partition_name_has_valid_characters_args)
        return this.equals((partition_name_has_valid_characters_args)that);
      return false;
    }

    public boolean equals(partition_name_has_valid_characters_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_part_vals = true && this.isSetPart_vals();
      boolean that_present_part_vals = true && that.isSetPart_vals();
      if (this_present_part_vals || that_present_part_vals) {
        if (!(this_present_part_vals && that_present_part_vals))
          return false;
        if (!this.part_vals.equals(that.part_vals))
          return false;
      }

      boolean this_present_throw_exception = true;
      boolean that_present_throw_exception = true;
      if (this_present_throw_exception || that_present_throw_exception) {
        if (!(this_present_throw_exception && that_present_throw_exception))
          return false;
        if (this.throw_exception != that.throw_exception)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetPart_vals()) ? 131071 : 524287);
      if (isSetPart_vals())
        hashCode = hashCode * 8191 + part_vals.hashCode();

      hashCode = hashCode * 8191 + ((throw_exception) ? 131071 : 524287);

      return hashCode;
    }

    @Override
    public int compareTo(partition_name_has_valid_characters_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetPart_vals(), other.isSetPart_vals());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPart_vals()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.part_vals, other.part_vals);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetThrow_exception(), other.isSetThrow_exception());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetThrow_exception()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.throw_exception, other.throw_exception);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("partition_name_has_valid_characters_args(");
      boolean first = true;

      sb.append("part_vals:");
      if (this.part_vals == null) {
        sb.append("null");
      } else {
        sb.append(this.part_vals);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("throw_exception:");
      sb.append(this.throw_exception);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class partition_name_has_valid_characters_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public partition_name_has_valid_characters_argsStandardScheme getScheme() {
        return new partition_name_has_valid_characters_argsStandardScheme();
      }
    }

    private static class partition_name_has_valid_characters_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<partition_name_has_valid_characters_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, partition_name_has_valid_characters_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // PART_VALS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1358 = iprot.readListBegin();
                  struct.part_vals = new java.util.ArrayList<java.lang.String>(_list1358.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem1359;
                  for (int _i1360 = 0; _i1360 < _list1358.size; ++_i1360)
                  {
                    _elem1359 = iprot.readString();
                    struct.part_vals.add(_elem1359);
                  }
                  iprot.readListEnd();
                }
                struct.setPart_valsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // THROW_EXCEPTION
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.throw_exception = iprot.readBool();
                struct.setThrow_exceptionIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, partition_name_has_valid_characters_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.part_vals != null) {
          oprot.writeFieldBegin(PART_VALS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.part_vals.size()));
            for (java.lang.String _iter1361 : struct.part_vals)
            {
              oprot.writeString(_iter1361);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(THROW_EXCEPTION_FIELD_DESC);
        oprot.writeBool(struct.throw_exception);
        oprot.writeFieldEnd();
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class partition_name_has_valid_characters_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public partition_name_has_valid_characters_argsTupleScheme getScheme() {
        return new partition_name_has_valid_characters_argsTupleScheme();
      }
    }

    private static class partition_name_has_valid_characters_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<partition_name_has_valid_characters_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, partition_name_has_valid_characters_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetPart_vals()) {
          optionals.set(0);
        }
        if (struct.isSetThrow_exception()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetPart_vals()) {
          {
            oprot.writeI32(struct.part_vals.size());
            for (java.lang.String _iter1362 : struct.part_vals)
            {
              oprot.writeString(_iter1362);
            }
          }
        }
        if (struct.isSetThrow_exception()) {
          oprot.writeBool(struct.throw_exception);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, partition_name_has_valid_characters_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list1363 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.part_vals = new java.util.ArrayList<java.lang.String>(_list1363.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem1364;
            for (int _i1365 = 0; _i1365 < _list1363.size; ++_i1365)
            {
              _elem1364 = iprot.readString();
              struct.part_vals.add(_elem1364);
            }
          }
          struct.setPart_valsIsSet(true);
        }
        if (incoming.get(1)) {
          struct.throw_exception = iprot.readBool();
          struct.setThrow_exceptionIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class partition_name_has_valid_characters_result implements org.apache.thrift.TBase<partition_name_has_valid_characters_result, partition_name_has_valid_characters_result._Fields>, java.io.Serializable, Cloneable, Comparable<partition_name_has_valid_characters_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("partition_name_has_valid_characters_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new partition_name_has_valid_characters_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new partition_name_has_valid_characters_resultTupleSchemeFactory();

    private boolean success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(partition_name_has_valid_characters_result.class, metaDataMap);
    }

    public partition_name_has_valid_characters_result() {
    }

    public partition_name_has_valid_characters_result(
      boolean success,
      MetaException o1)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public partition_name_has_valid_characters_result(partition_name_has_valid_characters_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public partition_name_has_valid_characters_result deepCopy() {
      return new partition_name_has_valid_characters_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = false;
      this.o1 = null;
    }

    public boolean isSuccess() {
      return this.success;
    }

    public void setSuccess(boolean success) {
      this.success = success;
      setSuccessIsSet(true);
    }

    public void unsetSuccess() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.lang.Boolean)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return isSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof partition_name_has_valid_characters_result)
        return this.equals((partition_name_has_valid_characters_result)that);
      return false;
    }

    public boolean equals(partition_name_has_valid_characters_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(partition_name_has_valid_characters_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("partition_name_has_valid_characters_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class partition_name_has_valid_characters_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public partition_name_has_valid_characters_resultStandardScheme getScheme() {
        return new partition_name_has_valid_characters_resultStandardScheme();
      }
    }

    private static class partition_name_has_valid_characters_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<partition_name_has_valid_characters_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, partition_name_has_valid_characters_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.success = iprot.readBool();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, partition_name_has_valid_characters_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeBool(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class partition_name_has_valid_characters_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public partition_name_has_valid_characters_resultTupleScheme getScheme() {
        return new partition_name_has_valid_characters_resultTupleScheme();
      }
    }

    private static class partition_name_has_valid_characters_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<partition_name_has_valid_characters_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, partition_name_has_valid_characters_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          oprot.writeBool(struct.success);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, partition_name_has_valid_characters_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.success = iprot.readBool();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_config_value_args implements org.apache.thrift.TBase<get_config_value_args, get_config_value_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_config_value_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_config_value_args");

    private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField DEFAULT_VALUE_FIELD_DESC = new org.apache.thrift.protocol.TField("defaultValue", org.apache.thrift.protocol.TType.STRING, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_config_value_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_config_value_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String defaultValue; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      NAME((short)1, "name"),
      DEFAULT_VALUE((short)2, "defaultValue");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // NAME
            return NAME;
          case 2: // DEFAULT_VALUE
            return DEFAULT_VALUE;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.DEFAULT_VALUE, new org.apache.thrift.meta_data.FieldMetaData("defaultValue", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_config_value_args.class, metaDataMap);
    }

    public get_config_value_args() {
    }

    public get_config_value_args(
      java.lang.String name,
      java.lang.String defaultValue)
    {
      this();
      this.name = name;
      this.defaultValue = defaultValue;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_config_value_args(get_config_value_args other) {
      if (other.isSetName()) {
        this.name = other.name;
      }
      if (other.isSetDefaultValue()) {
        this.defaultValue = other.defaultValue;
      }
    }

    public get_config_value_args deepCopy() {
      return new get_config_value_args(this);
    }

    @Override
    public void clear() {
      this.name = null;
      this.defaultValue = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getName() {
      return this.name;
    }

    public void setName(@org.apache.thrift.annotation.Nullable java.lang.String name) {
      this.name = name;
    }

    public void unsetName() {
      this.name = null;
    }

    /** Returns true if field name is set (has been assigned a value) and false otherwise */
    public boolean isSetName() {
      return this.name != null;
    }

    public void setNameIsSet(boolean value) {
      if (!value) {
        this.name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDefaultValue() {
      return this.defaultValue;
    }

    public void setDefaultValue(@org.apache.thrift.annotation.Nullable java.lang.String defaultValue) {
      this.defaultValue = defaultValue;
    }

    public void unsetDefaultValue() {
      this.defaultValue = null;
    }

    /** Returns true if field defaultValue is set (has been assigned a value) and false otherwise */
    public boolean isSetDefaultValue() {
      return this.defaultValue != null;
    }

    public void setDefaultValueIsSet(boolean value) {
      if (!value) {
        this.defaultValue = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case NAME:
        if (value == null) {
          unsetName();
        } else {
          setName((java.lang.String)value);
        }
        break;

      case DEFAULT_VALUE:
        if (value == null) {
          unsetDefaultValue();
        } else {
          setDefaultValue((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case NAME:
        return getName();

      case DEFAULT_VALUE:
        return getDefaultValue();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case NAME:
        return isSetName();
      case DEFAULT_VALUE:
        return isSetDefaultValue();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_config_value_args)
        return this.equals((get_config_value_args)that);
      return false;
    }

    public boolean equals(get_config_value_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_name = true && this.isSetName();
      boolean that_present_name = true && that.isSetName();
      if (this_present_name || that_present_name) {
        if (!(this_present_name && that_present_name))
          return false;
        if (!this.name.equals(that.name))
          return false;
      }

      boolean this_present_defaultValue = true && this.isSetDefaultValue();
      boolean that_present_defaultValue = true && that.isSetDefaultValue();
      if (this_present_defaultValue || that_present_defaultValue) {
        if (!(this_present_defaultValue && that_present_defaultValue))
          return false;
        if (!this.defaultValue.equals(that.defaultValue))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetName()) ? 131071 : 524287);
      if (isSetName())
        hashCode = hashCode * 8191 + name.hashCode();

      hashCode = hashCode * 8191 + ((isSetDefaultValue()) ? 131071 : 524287);
      if (isSetDefaultValue())
        hashCode = hashCode * 8191 + defaultValue.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_config_value_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetName(), other.isSetName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, other.name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetDefaultValue(), other.isSetDefaultValue());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDefaultValue()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.defaultValue, other.defaultValue);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_config_value_args(");
      boolean first = true;

      sb.append("name:");
      if (this.name == null) {
        sb.append("null");
      } else {
        sb.append(this.name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("defaultValue:");
      if (this.defaultValue == null) {
        sb.append("null");
      } else {
        sb.append(this.defaultValue);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_config_value_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_config_value_argsStandardScheme getScheme() {
        return new get_config_value_argsStandardScheme();
      }
    }

    private static class get_config_value_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_config_value_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_config_value_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.name = iprot.readString();
                struct.setNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // DEFAULT_VALUE
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.defaultValue = iprot.readString();
                struct.setDefaultValueIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_config_value_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.name != null) {
          oprot.writeFieldBegin(NAME_FIELD_DESC);
          oprot.writeString(struct.name);
          oprot.writeFieldEnd();
        }
        if (struct.defaultValue != null) {
          oprot.writeFieldBegin(DEFAULT_VALUE_FIELD_DESC);
          oprot.writeString(struct.defaultValue);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_config_value_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_config_value_argsTupleScheme getScheme() {
        return new get_config_value_argsTupleScheme();
      }
    }

    private static class get_config_value_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_config_value_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_config_value_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetName()) {
          optionals.set(0);
        }
        if (struct.isSetDefaultValue()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetName()) {
          oprot.writeString(struct.name);
        }
        if (struct.isSetDefaultValue()) {
          oprot.writeString(struct.defaultValue);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_config_value_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.name = iprot.readString();
          struct.setNameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.defaultValue = iprot.readString();
          struct.setDefaultValueIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_config_value_result implements org.apache.thrift.TBase<get_config_value_result, get_config_value_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_config_value_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_config_value_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_config_value_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_config_value_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String success; // required
    private @org.apache.thrift.annotation.Nullable ConfigValSecurityException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ConfigValSecurityException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_config_value_result.class, metaDataMap);
    }

    public get_config_value_result() {
    }

    public get_config_value_result(
      java.lang.String success,
      ConfigValSecurityException o1)
    {
      this();
      this.success = success;
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_config_value_result(get_config_value_result other) {
      if (other.isSetSuccess()) {
        this.success = other.success;
      }
      if (other.isSetO1()) {
        this.o1 = new ConfigValSecurityException(other.o1);
      }
    }

    public get_config_value_result deepCopy() {
      return new get_config_value_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.lang.String success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public ConfigValSecurityException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable ConfigValSecurityException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.lang.String)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((ConfigValSecurityException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_config_value_result)
        return this.equals((get_config_value_result)that);
      return false;
    }

    public boolean equals(get_config_value_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_config_value_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_config_value_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_config_value_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_config_value_resultStandardScheme getScheme() {
        return new get_config_value_resultStandardScheme();
      }
    }

    private static class get_config_value_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_config_value_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_config_value_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.success = iprot.readString();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new ConfigValSecurityException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_config_value_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeString(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_config_value_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_config_value_resultTupleScheme getScheme() {
        return new get_config_value_resultTupleScheme();
      }
    }

    private static class get_config_value_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_config_value_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_config_value_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          oprot.writeString(struct.success);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_config_value_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.success = iprot.readString();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new ConfigValSecurityException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class partition_name_to_vals_args implements org.apache.thrift.TBase<partition_name_to_vals_args, partition_name_to_vals_args._Fields>, java.io.Serializable, Cloneable, Comparable<partition_name_to_vals_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("partition_name_to_vals_args");

    private static final org.apache.thrift.protocol.TField PART_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("part_name", org.apache.thrift.protocol.TType.STRING, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new partition_name_to_vals_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new partition_name_to_vals_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String part_name; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      PART_NAME((short)1, "part_name");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // PART_NAME
            return PART_NAME;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.PART_NAME, new org.apache.thrift.meta_data.FieldMetaData("part_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(partition_name_to_vals_args.class, metaDataMap);
    }

    public partition_name_to_vals_args() {
    }

    public partition_name_to_vals_args(
      java.lang.String part_name)
    {
      this();
      this.part_name = part_name;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public partition_name_to_vals_args(partition_name_to_vals_args other) {
      if (other.isSetPart_name()) {
        this.part_name = other.part_name;
      }
    }

    public partition_name_to_vals_args deepCopy() {
      return new partition_name_to_vals_args(this);
    }

    @Override
    public void clear() {
      this.part_name = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getPart_name() {
      return this.part_name;
    }

    public void setPart_name(@org.apache.thrift.annotation.Nullable java.lang.String part_name) {
      this.part_name = part_name;
    }

    public void unsetPart_name() {
      this.part_name = null;
    }

    /** Returns true if field part_name is set (has been assigned a value) and false otherwise */
    public boolean isSetPart_name() {
      return this.part_name != null;
    }

    public void setPart_nameIsSet(boolean value) {
      if (!value) {
        this.part_name = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case PART_NAME:
        if (value == null) {
          unsetPart_name();
        } else {
          setPart_name((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case PART_NAME:
        return getPart_name();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case PART_NAME:
        return isSetPart_name();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof partition_name_to_vals_args)
        return this.equals((partition_name_to_vals_args)that);
      return false;
    }

    public boolean equals(partition_name_to_vals_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_part_name = true && this.isSetPart_name();
      boolean that_present_part_name = true && that.isSetPart_name();
      if (this_present_part_name || that_present_part_name) {
        if (!(this_present_part_name && that_present_part_name))
          return false;
        if (!this.part_name.equals(that.part_name))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetPart_name()) ? 131071 : 524287);
      if (isSetPart_name())
        hashCode = hashCode * 8191 + part_name.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(partition_name_to_vals_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetPart_name(), other.isSetPart_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPart_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.part_name, other.part_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("partition_name_to_vals_args(");
      boolean first = true;

      sb.append("part_name:");
      if (this.part_name == null) {
        sb.append("null");
      } else {
        sb.append(this.part_name);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class partition_name_to_vals_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public partition_name_to_vals_argsStandardScheme getScheme() {
        return new partition_name_to_vals_argsStandardScheme();
      }
    }

    private static class partition_name_to_vals_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<partition_name_to_vals_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, partition_name_to_vals_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // PART_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.part_name = iprot.readString();
                struct.setPart_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, partition_name_to_vals_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.part_name != null) {
          oprot.writeFieldBegin(PART_NAME_FIELD_DESC);
          oprot.writeString(struct.part_name);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class partition_name_to_vals_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public partition_name_to_vals_argsTupleScheme getScheme() {
        return new partition_name_to_vals_argsTupleScheme();
      }
    }

    private static class partition_name_to_vals_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<partition_name_to_vals_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, partition_name_to_vals_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetPart_name()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetPart_name()) {
          oprot.writeString(struct.part_name);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, partition_name_to_vals_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.part_name = iprot.readString();
          struct.setPart_nameIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class partition_name_to_vals_result implements org.apache.thrift.TBase<partition_name_to_vals_result, partition_name_to_vals_result._Fields>, java.io.Serializable, Cloneable, Comparable<partition_name_to_vals_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("partition_name_to_vals_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new partition_name_to_vals_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new partition_name_to_vals_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(partition_name_to_vals_result.class, metaDataMap);
    }

    public partition_name_to_vals_result() {
    }

    public partition_name_to_vals_result(
      java.util.List<java.lang.String> success,
      MetaException o1)
    {
      this();
      this.success = success;
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public partition_name_to_vals_result(partition_name_to_vals_result other) {
      if (other.isSetSuccess()) {
        java.util.List<java.lang.String> __this__success = new java.util.ArrayList<java.lang.String>(other.success);
        this.success = __this__success;
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public partition_name_to_vals_result deepCopy() {
      return new partition_name_to_vals_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(java.lang.String elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<java.lang.String>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<java.lang.String>)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof partition_name_to_vals_result)
        return this.equals((partition_name_to_vals_result)that);
      return false;
    }

    public boolean equals(partition_name_to_vals_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(partition_name_to_vals_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("partition_name_to_vals_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class partition_name_to_vals_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public partition_name_to_vals_resultStandardScheme getScheme() {
        return new partition_name_to_vals_resultStandardScheme();
      }
    }

    private static class partition_name_to_vals_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<partition_name_to_vals_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, partition_name_to_vals_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1366 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<java.lang.String>(_list1366.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem1367;
                  for (int _i1368 = 0; _i1368 < _list1366.size; ++_i1368)
                  {
                    _elem1367 = iprot.readString();
                    struct.success.add(_elem1367);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, partition_name_to_vals_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.success.size()));
            for (java.lang.String _iter1369 : struct.success)
            {
              oprot.writeString(_iter1369);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class partition_name_to_vals_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public partition_name_to_vals_resultTupleScheme getScheme() {
        return new partition_name_to_vals_resultTupleScheme();
      }
    }

    private static class partition_name_to_vals_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<partition_name_to_vals_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, partition_name_to_vals_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (java.lang.String _iter1370 : struct.success)
            {
              oprot.writeString(_iter1370);
            }
          }
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, partition_name_to_vals_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list1371 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.success = new java.util.ArrayList<java.lang.String>(_list1371.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem1372;
            for (int _i1373 = 0; _i1373 < _list1371.size; ++_i1373)
            {
              _elem1372 = iprot.readString();
              struct.success.add(_elem1372);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class partition_name_to_spec_args implements org.apache.thrift.TBase<partition_name_to_spec_args, partition_name_to_spec_args._Fields>, java.io.Serializable, Cloneable, Comparable<partition_name_to_spec_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("partition_name_to_spec_args");

    private static final org.apache.thrift.protocol.TField PART_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("part_name", org.apache.thrift.protocol.TType.STRING, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new partition_name_to_spec_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new partition_name_to_spec_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String part_name; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      PART_NAME((short)1, "part_name");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // PART_NAME
            return PART_NAME;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.PART_NAME, new org.apache.thrift.meta_data.FieldMetaData("part_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(partition_name_to_spec_args.class, metaDataMap);
    }

    public partition_name_to_spec_args() {
    }

    public partition_name_to_spec_args(
      java.lang.String part_name)
    {
      this();
      this.part_name = part_name;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public partition_name_to_spec_args(partition_name_to_spec_args other) {
      if (other.isSetPart_name()) {
        this.part_name = other.part_name;
      }
    }

    public partition_name_to_spec_args deepCopy() {
      return new partition_name_to_spec_args(this);
    }

    @Override
    public void clear() {
      this.part_name = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getPart_name() {
      return this.part_name;
    }

    public void setPart_name(@org.apache.thrift.annotation.Nullable java.lang.String part_name) {
      this.part_name = part_name;
    }

    public void unsetPart_name() {
      this.part_name = null;
    }

    /** Returns true if field part_name is set (has been assigned a value) and false otherwise */
    public boolean isSetPart_name() {
      return this.part_name != null;
    }

    public void setPart_nameIsSet(boolean value) {
      if (!value) {
        this.part_name = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case PART_NAME:
        if (value == null) {
          unsetPart_name();
        } else {
          setPart_name((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case PART_NAME:
        return getPart_name();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case PART_NAME:
        return isSetPart_name();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof partition_name_to_spec_args)
        return this.equals((partition_name_to_spec_args)that);
      return false;
    }

    public boolean equals(partition_name_to_spec_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_part_name = true && this.isSetPart_name();
      boolean that_present_part_name = true && that.isSetPart_name();
      if (this_present_part_name || that_present_part_name) {
        if (!(this_present_part_name && that_present_part_name))
          return false;
        if (!this.part_name.equals(that.part_name))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetPart_name()) ? 131071 : 524287);
      if (isSetPart_name())
        hashCode = hashCode * 8191 + part_name.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(partition_name_to_spec_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetPart_name(), other.isSetPart_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPart_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.part_name, other.part_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("partition_name_to_spec_args(");
      boolean first = true;

      sb.append("part_name:");
      if (this.part_name == null) {
        sb.append("null");
      } else {
        sb.append(this.part_name);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class partition_name_to_spec_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public partition_name_to_spec_argsStandardScheme getScheme() {
        return new partition_name_to_spec_argsStandardScheme();
      }
    }

    private static class partition_name_to_spec_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<partition_name_to_spec_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, partition_name_to_spec_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // PART_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.part_name = iprot.readString();
                struct.setPart_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, partition_name_to_spec_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.part_name != null) {
          oprot.writeFieldBegin(PART_NAME_FIELD_DESC);
          oprot.writeString(struct.part_name);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class partition_name_to_spec_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public partition_name_to_spec_argsTupleScheme getScheme() {
        return new partition_name_to_spec_argsTupleScheme();
      }
    }

    private static class partition_name_to_spec_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<partition_name_to_spec_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, partition_name_to_spec_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetPart_name()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetPart_name()) {
          oprot.writeString(struct.part_name);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, partition_name_to_spec_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.part_name = iprot.readString();
          struct.setPart_nameIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class partition_name_to_spec_result implements org.apache.thrift.TBase<partition_name_to_spec_result, partition_name_to_spec_result._Fields>, java.io.Serializable, Cloneable, Comparable<partition_name_to_spec_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("partition_name_to_spec_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.MAP, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new partition_name_to_spec_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new partition_name_to_spec_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.lang.String> success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(partition_name_to_spec_result.class, metaDataMap);
    }

    public partition_name_to_spec_result() {
    }

    public partition_name_to_spec_result(
      java.util.Map<java.lang.String,java.lang.String> success,
      MetaException o1)
    {
      this();
      this.success = success;
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public partition_name_to_spec_result(partition_name_to_spec_result other) {
      if (other.isSetSuccess()) {
        java.util.Map<java.lang.String,java.lang.String> __this__success = new java.util.HashMap<java.lang.String,java.lang.String>(other.success);
        this.success = __this__success;
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public partition_name_to_spec_result deepCopy() {
      return new partition_name_to_spec_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    public void putToSuccess(java.lang.String key, java.lang.String val) {
      if (this.success == null) {
        this.success = new java.util.HashMap<java.lang.String,java.lang.String>();
      }
      this.success.put(key, val);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Map<java.lang.String,java.lang.String> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.lang.String> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.Map<java.lang.String,java.lang.String>)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof partition_name_to_spec_result)
        return this.equals((partition_name_to_spec_result)that);
      return false;
    }

    public boolean equals(partition_name_to_spec_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(partition_name_to_spec_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("partition_name_to_spec_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class partition_name_to_spec_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public partition_name_to_spec_resultStandardScheme getScheme() {
        return new partition_name_to_spec_resultStandardScheme();
      }
    }

    private static class partition_name_to_spec_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<partition_name_to_spec_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, partition_name_to_spec_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
                {
                  org.apache.thrift.protocol.TMap _map1374 = iprot.readMapBegin();
                  struct.success = new java.util.HashMap<java.lang.String,java.lang.String>(2*_map1374.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _key1375;
                  @org.apache.thrift.annotation.Nullable java.lang.String _val1376;
                  for (int _i1377 = 0; _i1377 < _map1374.size; ++_i1377)
                  {
                    _key1375 = iprot.readString();
                    _val1376 = iprot.readString();
                    struct.success.put(_key1375, _val1376);
                  }
                  iprot.readMapEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, partition_name_to_spec_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.success.size()));
            for (java.util.Map.Entry<java.lang.String, java.lang.String> _iter1378 : struct.success.entrySet())
            {
              oprot.writeString(_iter1378.getKey());
              oprot.writeString(_iter1378.getValue());
            }
            oprot.writeMapEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class partition_name_to_spec_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public partition_name_to_spec_resultTupleScheme getScheme() {
        return new partition_name_to_spec_resultTupleScheme();
      }
    }

    private static class partition_name_to_spec_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<partition_name_to_spec_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, partition_name_to_spec_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (java.util.Map.Entry<java.lang.String, java.lang.String> _iter1379 : struct.success.entrySet())
            {
              oprot.writeString(_iter1379.getKey());
              oprot.writeString(_iter1379.getValue());
            }
          }
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, partition_name_to_spec_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TMap _map1380 = iprot.readMapBegin(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING); 
            struct.success = new java.util.HashMap<java.lang.String,java.lang.String>(2*_map1380.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _key1381;
            @org.apache.thrift.annotation.Nullable java.lang.String _val1382;
            for (int _i1383 = 0; _i1383 < _map1380.size; ++_i1383)
            {
              _key1381 = iprot.readString();
              _val1382 = iprot.readString();
              struct.success.put(_key1381, _val1382);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class markPartitionForEvent_args implements org.apache.thrift.TBase<markPartitionForEvent_args, markPartitionForEvent_args._Fields>, java.io.Serializable, Cloneable, Comparable<markPartitionForEvent_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("markPartitionForEvent_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField PART_VALS_FIELD_DESC = new org.apache.thrift.protocol.TField("part_vals", org.apache.thrift.protocol.TType.MAP, (short)3);
    private static final org.apache.thrift.protocol.TField EVENT_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("eventType", org.apache.thrift.protocol.TType.I32, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new markPartitionForEvent_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new markPartitionForEvent_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private @org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.lang.String> part_vals; // required
    private @org.apache.thrift.annotation.Nullable PartitionEventType eventType; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TBL_NAME((short)2, "tbl_name"),
      PART_VALS((short)3, "part_vals"),
      /**
       * 
       * @see PartitionEventType
       */
      EVENT_TYPE((short)4, "eventType");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // PART_VALS
            return PART_VALS;
          case 4: // EVENT_TYPE
            return EVENT_TYPE;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PART_VALS, new org.apache.thrift.meta_data.FieldMetaData("part_vals", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      tmpMap.put(_Fields.EVENT_TYPE, new org.apache.thrift.meta_data.FieldMetaData("eventType", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, PartitionEventType.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(markPartitionForEvent_args.class, metaDataMap);
    }

    public markPartitionForEvent_args() {
    }

    public markPartitionForEvent_args(
      java.lang.String db_name,
      java.lang.String tbl_name,
      java.util.Map<java.lang.String,java.lang.String> part_vals,
      PartitionEventType eventType)
    {
      this();
      this.db_name = db_name;
      this.tbl_name = tbl_name;
      this.part_vals = part_vals;
      this.eventType = eventType;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public markPartitionForEvent_args(markPartitionForEvent_args other) {
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      if (other.isSetPart_vals()) {
        java.util.Map<java.lang.String,java.lang.String> __this__part_vals = new java.util.HashMap<java.lang.String,java.lang.String>(other.part_vals);
        this.part_vals = __this__part_vals;
      }
      if (other.isSetEventType()) {
        this.eventType = other.eventType;
      }
    }

    public markPartitionForEvent_args deepCopy() {
      return new markPartitionForEvent_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.tbl_name = null;
      this.part_vals = null;
      this.eventType = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    public int getPart_valsSize() {
      return (this.part_vals == null) ? 0 : this.part_vals.size();
    }

    public void putToPart_vals(java.lang.String key, java.lang.String val) {
      if (this.part_vals == null) {
        this.part_vals = new java.util.HashMap<java.lang.String,java.lang.String>();
      }
      this.part_vals.put(key, val);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Map<java.lang.String,java.lang.String> getPart_vals() {
      return this.part_vals;
    }

    public void setPart_vals(@org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.lang.String> part_vals) {
      this.part_vals = part_vals;
    }

    public void unsetPart_vals() {
      this.part_vals = null;
    }

    /** Returns true if field part_vals is set (has been assigned a value) and false otherwise */
    public boolean isSetPart_vals() {
      return this.part_vals != null;
    }

    public void setPart_valsIsSet(boolean value) {
      if (!value) {
        this.part_vals = null;
      }
    }

    /**
     * 
     * @see PartitionEventType
     */
    @org.apache.thrift.annotation.Nullable
    public PartitionEventType getEventType() {
      return this.eventType;
    }

    /**
     * 
     * @see PartitionEventType
     */
    public void setEventType(@org.apache.thrift.annotation.Nullable PartitionEventType eventType) {
      this.eventType = eventType;
    }

    public void unsetEventType() {
      this.eventType = null;
    }

    /** Returns true if field eventType is set (has been assigned a value) and false otherwise */
    public boolean isSetEventType() {
      return this.eventType != null;
    }

    public void setEventTypeIsSet(boolean value) {
      if (!value) {
        this.eventType = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case PART_VALS:
        if (value == null) {
          unsetPart_vals();
        } else {
          setPart_vals((java.util.Map<java.lang.String,java.lang.String>)value);
        }
        break;

      case EVENT_TYPE:
        if (value == null) {
          unsetEventType();
        } else {
          setEventType((PartitionEventType)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TBL_NAME:
        return getTbl_name();

      case PART_VALS:
        return getPart_vals();

      case EVENT_TYPE:
        return getEventType();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TBL_NAME:
        return isSetTbl_name();
      case PART_VALS:
        return isSetPart_vals();
      case EVENT_TYPE:
        return isSetEventType();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof markPartitionForEvent_args)
        return this.equals((markPartitionForEvent_args)that);
      return false;
    }

    public boolean equals(markPartitionForEvent_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_part_vals = true && this.isSetPart_vals();
      boolean that_present_part_vals = true && that.isSetPart_vals();
      if (this_present_part_vals || that_present_part_vals) {
        if (!(this_present_part_vals && that_present_part_vals))
          return false;
        if (!this.part_vals.equals(that.part_vals))
          return false;
      }

      boolean this_present_eventType = true && this.isSetEventType();
      boolean that_present_eventType = true && that.isSetEventType();
      if (this_present_eventType || that_present_eventType) {
        if (!(this_present_eventType && that_present_eventType))
          return false;
        if (!this.eventType.equals(that.eventType))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetPart_vals()) ? 131071 : 524287);
      if (isSetPart_vals())
        hashCode = hashCode * 8191 + part_vals.hashCode();

      hashCode = hashCode * 8191 + ((isSetEventType()) ? 131071 : 524287);
      if (isSetEventType())
        hashCode = hashCode * 8191 + eventType.getValue();

      return hashCode;
    }

    @Override
    public int compareTo(markPartitionForEvent_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetPart_vals(), other.isSetPart_vals());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPart_vals()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.part_vals, other.part_vals);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetEventType(), other.isSetEventType());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEventType()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.eventType, other.eventType);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("markPartitionForEvent_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("part_vals:");
      if (this.part_vals == null) {
        sb.append("null");
      } else {
        sb.append(this.part_vals);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("eventType:");
      if (this.eventType == null) {
        sb.append("null");
      } else {
        sb.append(this.eventType);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class markPartitionForEvent_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public markPartitionForEvent_argsStandardScheme getScheme() {
        return new markPartitionForEvent_argsStandardScheme();
      }
    }

    private static class markPartitionForEvent_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<markPartitionForEvent_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, markPartitionForEvent_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // PART_VALS
              if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
                {
                  org.apache.thrift.protocol.TMap _map1384 = iprot.readMapBegin();
                  struct.part_vals = new java.util.HashMap<java.lang.String,java.lang.String>(2*_map1384.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _key1385;
                  @org.apache.thrift.annotation.Nullable java.lang.String _val1386;
                  for (int _i1387 = 0; _i1387 < _map1384.size; ++_i1387)
                  {
                    _key1385 = iprot.readString();
                    _val1386 = iprot.readString();
                    struct.part_vals.put(_key1385, _val1386);
                  }
                  iprot.readMapEnd();
                }
                struct.setPart_valsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // EVENT_TYPE
              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
                struct.eventType = org.apache.hadoop.hive.metastore.api.PartitionEventType.findByValue(iprot.readI32());
                struct.setEventTypeIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, markPartitionForEvent_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        if (struct.part_vals != null) {
          oprot.writeFieldBegin(PART_VALS_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.part_vals.size()));
            for (java.util.Map.Entry<java.lang.String, java.lang.String> _iter1388 : struct.part_vals.entrySet())
            {
              oprot.writeString(_iter1388.getKey());
              oprot.writeString(_iter1388.getValue());
            }
            oprot.writeMapEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.eventType != null) {
          oprot.writeFieldBegin(EVENT_TYPE_FIELD_DESC);
          oprot.writeI32(struct.eventType.getValue());
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class markPartitionForEvent_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public markPartitionForEvent_argsTupleScheme getScheme() {
        return new markPartitionForEvent_argsTupleScheme();
      }
    }

    private static class markPartitionForEvent_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<markPartitionForEvent_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, markPartitionForEvent_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetPart_vals()) {
          optionals.set(2);
        }
        if (struct.isSetEventType()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetPart_vals()) {
          {
            oprot.writeI32(struct.part_vals.size());
            for (java.util.Map.Entry<java.lang.String, java.lang.String> _iter1389 : struct.part_vals.entrySet())
            {
              oprot.writeString(_iter1389.getKey());
              oprot.writeString(_iter1389.getValue());
            }
          }
        }
        if (struct.isSetEventType()) {
          oprot.writeI32(struct.eventType.getValue());
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, markPartitionForEvent_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          {
            org.apache.thrift.protocol.TMap _map1390 = iprot.readMapBegin(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING); 
            struct.part_vals = new java.util.HashMap<java.lang.String,java.lang.String>(2*_map1390.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _key1391;
            @org.apache.thrift.annotation.Nullable java.lang.String _val1392;
            for (int _i1393 = 0; _i1393 < _map1390.size; ++_i1393)
            {
              _key1391 = iprot.readString();
              _val1392 = iprot.readString();
              struct.part_vals.put(_key1391, _val1392);
            }
          }
          struct.setPart_valsIsSet(true);
        }
        if (incoming.get(3)) {
          struct.eventType = org.apache.hadoop.hive.metastore.api.PartitionEventType.findByValue(iprot.readI32());
          struct.setEventTypeIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class markPartitionForEvent_result implements org.apache.thrift.TBase<markPartitionForEvent_result, markPartitionForEvent_result._Fields>, java.io.Serializable, Cloneable, Comparable<markPartitionForEvent_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("markPartitionForEvent_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField O4_FIELD_DESC = new org.apache.thrift.protocol.TField("o4", org.apache.thrift.protocol.TType.STRUCT, (short)4);
    private static final org.apache.thrift.protocol.TField O5_FIELD_DESC = new org.apache.thrift.protocol.TField("o5", org.apache.thrift.protocol.TType.STRUCT, (short)5);
    private static final org.apache.thrift.protocol.TField O6_FIELD_DESC = new org.apache.thrift.protocol.TField("o6", org.apache.thrift.protocol.TType.STRUCT, (short)6);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new markPartitionForEvent_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new markPartitionForEvent_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // required
    private @org.apache.thrift.annotation.Nullable UnknownDBException o3; // required
    private @org.apache.thrift.annotation.Nullable UnknownTableException o4; // required
    private @org.apache.thrift.annotation.Nullable UnknownPartitionException o5; // required
    private @org.apache.thrift.annotation.Nullable InvalidPartitionException o6; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3"),
      O4((short)4, "o4"),
      O5((short)5, "o5"),
      O6((short)6, "o6");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          case 4: // O4
            return O4;
          case 5: // O5
            return O5;
          case 6: // O6
            return O6;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UnknownDBException.class)));
      tmpMap.put(_Fields.O4, new org.apache.thrift.meta_data.FieldMetaData("o4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UnknownTableException.class)));
      tmpMap.put(_Fields.O5, new org.apache.thrift.meta_data.FieldMetaData("o5", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UnknownPartitionException.class)));
      tmpMap.put(_Fields.O6, new org.apache.thrift.meta_data.FieldMetaData("o6", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidPartitionException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(markPartitionForEvent_result.class, metaDataMap);
    }

    public markPartitionForEvent_result() {
    }

    public markPartitionForEvent_result(
      MetaException o1,
      NoSuchObjectException o2,
      UnknownDBException o3,
      UnknownTableException o4,
      UnknownPartitionException o5,
      InvalidPartitionException o6)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
      this.o4 = o4;
      this.o5 = o5;
      this.o6 = o6;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public markPartitionForEvent_result(markPartitionForEvent_result other) {
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchObjectException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new UnknownDBException(other.o3);
      }
      if (other.isSetO4()) {
        this.o4 = new UnknownTableException(other.o4);
      }
      if (other.isSetO5()) {
        this.o5 = new UnknownPartitionException(other.o5);
      }
      if (other.isSetO6()) {
        this.o6 = new InvalidPartitionException(other.o6);
      }
    }

    public markPartitionForEvent_result deepCopy() {
      return new markPartitionForEvent_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
      this.o4 = null;
      this.o5 = null;
      this.o6 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public UnknownDBException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable UnknownDBException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public UnknownTableException getO4() {
      return this.o4;
    }

    public void setO4(@org.apache.thrift.annotation.Nullable UnknownTableException o4) {
      this.o4 = o4;
    }

    public void unsetO4() {
      this.o4 = null;
    }

    /** Returns true if field o4 is set (has been assigned a value) and false otherwise */
    public boolean isSetO4() {
      return this.o4 != null;
    }

    public void setO4IsSet(boolean value) {
      if (!value) {
        this.o4 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public UnknownPartitionException getO5() {
      return this.o5;
    }

    public void setO5(@org.apache.thrift.annotation.Nullable UnknownPartitionException o5) {
      this.o5 = o5;
    }

    public void unsetO5() {
      this.o5 = null;
    }

    /** Returns true if field o5 is set (has been assigned a value) and false otherwise */
    public boolean isSetO5() {
      return this.o5 != null;
    }

    public void setO5IsSet(boolean value) {
      if (!value) {
        this.o5 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidPartitionException getO6() {
      return this.o6;
    }

    public void setO6(@org.apache.thrift.annotation.Nullable InvalidPartitionException o6) {
      this.o6 = o6;
    }

    public void unsetO6() {
      this.o6 = null;
    }

    /** Returns true if field o6 is set (has been assigned a value) and false otherwise */
    public boolean isSetO6() {
      return this.o6 != null;
    }

    public void setO6IsSet(boolean value) {
      if (!value) {
        this.o6 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchObjectException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((UnknownDBException)value);
        }
        break;

      case O4:
        if (value == null) {
          unsetO4();
        } else {
          setO4((UnknownTableException)value);
        }
        break;

      case O5:
        if (value == null) {
          unsetO5();
        } else {
          setO5((UnknownPartitionException)value);
        }
        break;

      case O6:
        if (value == null) {
          unsetO6();
        } else {
          setO6((InvalidPartitionException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      case O4:
        return getO4();

      case O5:
        return getO5();

      case O6:
        return getO6();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      case O4:
        return isSetO4();
      case O5:
        return isSetO5();
      case O6:
        return isSetO6();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof markPartitionForEvent_result)
        return this.equals((markPartitionForEvent_result)that);
      return false;
    }

    public boolean equals(markPartitionForEvent_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      boolean this_present_o4 = true && this.isSetO4();
      boolean that_present_o4 = true && that.isSetO4();
      if (this_present_o4 || that_present_o4) {
        if (!(this_present_o4 && that_present_o4))
          return false;
        if (!this.o4.equals(that.o4))
          return false;
      }

      boolean this_present_o5 = true && this.isSetO5();
      boolean that_present_o5 = true && that.isSetO5();
      if (this_present_o5 || that_present_o5) {
        if (!(this_present_o5 && that_present_o5))
          return false;
        if (!this.o5.equals(that.o5))
          return false;
      }

      boolean this_present_o6 = true && this.isSetO6();
      boolean that_present_o6 = true && that.isSetO6();
      if (this_present_o6 || that_present_o6) {
        if (!(this_present_o6 && that_present_o6))
          return false;
        if (!this.o6.equals(that.o6))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      hashCode = hashCode * 8191 + ((isSetO4()) ? 131071 : 524287);
      if (isSetO4())
        hashCode = hashCode * 8191 + o4.hashCode();

      hashCode = hashCode * 8191 + ((isSetO5()) ? 131071 : 524287);
      if (isSetO5())
        hashCode = hashCode * 8191 + o5.hashCode();

      hashCode = hashCode * 8191 + ((isSetO6()) ? 131071 : 524287);
      if (isSetO6())
        hashCode = hashCode * 8191 + o6.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(markPartitionForEvent_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO4(), other.isSetO4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o4, other.o4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO5(), other.isSetO5());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO5()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o5, other.o5);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO6(), other.isSetO6());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO6()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o6, other.o6);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("markPartitionForEvent_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o4:");
      if (this.o4 == null) {
        sb.append("null");
      } else {
        sb.append(this.o4);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o5:");
      if (this.o5 == null) {
        sb.append("null");
      } else {
        sb.append(this.o5);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o6:");
      if (this.o6 == null) {
        sb.append("null");
      } else {
        sb.append(this.o6);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class markPartitionForEvent_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public markPartitionForEvent_resultStandardScheme getScheme() {
        return new markPartitionForEvent_resultStandardScheme();
      }
    }

    private static class markPartitionForEvent_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<markPartitionForEvent_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, markPartitionForEvent_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new UnknownDBException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // O4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o4 = new UnknownTableException();
                struct.o4.read(iprot);
                struct.setO4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // O5
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o5 = new UnknownPartitionException();
                struct.o5.read(iprot);
                struct.setO5IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 6: // O6
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o6 = new InvalidPartitionException();
                struct.o6.read(iprot);
                struct.setO6IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, markPartitionForEvent_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o4 != null) {
          oprot.writeFieldBegin(O4_FIELD_DESC);
          struct.o4.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o5 != null) {
          oprot.writeFieldBegin(O5_FIELD_DESC);
          struct.o5.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o6 != null) {
          oprot.writeFieldBegin(O6_FIELD_DESC);
          struct.o6.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class markPartitionForEvent_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public markPartitionForEvent_resultTupleScheme getScheme() {
        return new markPartitionForEvent_resultTupleScheme();
      }
    }

    private static class markPartitionForEvent_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<markPartitionForEvent_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, markPartitionForEvent_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        if (struct.isSetO3()) {
          optionals.set(2);
        }
        if (struct.isSetO4()) {
          optionals.set(3);
        }
        if (struct.isSetO5()) {
          optionals.set(4);
        }
        if (struct.isSetO6()) {
          optionals.set(5);
        }
        oprot.writeBitSet(optionals, 6);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
        if (struct.isSetO4()) {
          struct.o4.write(oprot);
        }
        if (struct.isSetO5()) {
          struct.o5.write(oprot);
        }
        if (struct.isSetO6()) {
          struct.o6.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, markPartitionForEvent_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(6);
        if (incoming.get(0)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new NoSuchObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o3 = new UnknownDBException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o4 = new UnknownTableException();
          struct.o4.read(iprot);
          struct.setO4IsSet(true);
        }
        if (incoming.get(4)) {
          struct.o5 = new UnknownPartitionException();
          struct.o5.read(iprot);
          struct.setO5IsSet(true);
        }
        if (incoming.get(5)) {
          struct.o6 = new InvalidPartitionException();
          struct.o6.read(iprot);
          struct.setO6IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class isPartitionMarkedForEvent_args implements org.apache.thrift.TBase<isPartitionMarkedForEvent_args, isPartitionMarkedForEvent_args._Fields>, java.io.Serializable, Cloneable, Comparable<isPartitionMarkedForEvent_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("isPartitionMarkedForEvent_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField PART_VALS_FIELD_DESC = new org.apache.thrift.protocol.TField("part_vals", org.apache.thrift.protocol.TType.MAP, (short)3);
    private static final org.apache.thrift.protocol.TField EVENT_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("eventType", org.apache.thrift.protocol.TType.I32, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new isPartitionMarkedForEvent_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new isPartitionMarkedForEvent_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private @org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.lang.String> part_vals; // required
    private @org.apache.thrift.annotation.Nullable PartitionEventType eventType; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TBL_NAME((short)2, "tbl_name"),
      PART_VALS((short)3, "part_vals"),
      /**
       * 
       * @see PartitionEventType
       */
      EVENT_TYPE((short)4, "eventType");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // PART_VALS
            return PART_VALS;
          case 4: // EVENT_TYPE
            return EVENT_TYPE;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PART_VALS, new org.apache.thrift.meta_data.FieldMetaData("part_vals", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      tmpMap.put(_Fields.EVENT_TYPE, new org.apache.thrift.meta_data.FieldMetaData("eventType", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, PartitionEventType.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(isPartitionMarkedForEvent_args.class, metaDataMap);
    }

    public isPartitionMarkedForEvent_args() {
    }

    public isPartitionMarkedForEvent_args(
      java.lang.String db_name,
      java.lang.String tbl_name,
      java.util.Map<java.lang.String,java.lang.String> part_vals,
      PartitionEventType eventType)
    {
      this();
      this.db_name = db_name;
      this.tbl_name = tbl_name;
      this.part_vals = part_vals;
      this.eventType = eventType;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public isPartitionMarkedForEvent_args(isPartitionMarkedForEvent_args other) {
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      if (other.isSetPart_vals()) {
        java.util.Map<java.lang.String,java.lang.String> __this__part_vals = new java.util.HashMap<java.lang.String,java.lang.String>(other.part_vals);
        this.part_vals = __this__part_vals;
      }
      if (other.isSetEventType()) {
        this.eventType = other.eventType;
      }
    }

    public isPartitionMarkedForEvent_args deepCopy() {
      return new isPartitionMarkedForEvent_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.tbl_name = null;
      this.part_vals = null;
      this.eventType = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    public int getPart_valsSize() {
      return (this.part_vals == null) ? 0 : this.part_vals.size();
    }

    public void putToPart_vals(java.lang.String key, java.lang.String val) {
      if (this.part_vals == null) {
        this.part_vals = new java.util.HashMap<java.lang.String,java.lang.String>();
      }
      this.part_vals.put(key, val);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Map<java.lang.String,java.lang.String> getPart_vals() {
      return this.part_vals;
    }

    public void setPart_vals(@org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.lang.String> part_vals) {
      this.part_vals = part_vals;
    }

    public void unsetPart_vals() {
      this.part_vals = null;
    }

    /** Returns true if field part_vals is set (has been assigned a value) and false otherwise */
    public boolean isSetPart_vals() {
      return this.part_vals != null;
    }

    public void setPart_valsIsSet(boolean value) {
      if (!value) {
        this.part_vals = null;
      }
    }

    /**
     * 
     * @see PartitionEventType
     */
    @org.apache.thrift.annotation.Nullable
    public PartitionEventType getEventType() {
      return this.eventType;
    }

    /**
     * 
     * @see PartitionEventType
     */
    public void setEventType(@org.apache.thrift.annotation.Nullable PartitionEventType eventType) {
      this.eventType = eventType;
    }

    public void unsetEventType() {
      this.eventType = null;
    }

    /** Returns true if field eventType is set (has been assigned a value) and false otherwise */
    public boolean isSetEventType() {
      return this.eventType != null;
    }

    public void setEventTypeIsSet(boolean value) {
      if (!value) {
        this.eventType = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case PART_VALS:
        if (value == null) {
          unsetPart_vals();
        } else {
          setPart_vals((java.util.Map<java.lang.String,java.lang.String>)value);
        }
        break;

      case EVENT_TYPE:
        if (value == null) {
          unsetEventType();
        } else {
          setEventType((PartitionEventType)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TBL_NAME:
        return getTbl_name();

      case PART_VALS:
        return getPart_vals();

      case EVENT_TYPE:
        return getEventType();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TBL_NAME:
        return isSetTbl_name();
      case PART_VALS:
        return isSetPart_vals();
      case EVENT_TYPE:
        return isSetEventType();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof isPartitionMarkedForEvent_args)
        return this.equals((isPartitionMarkedForEvent_args)that);
      return false;
    }

    public boolean equals(isPartitionMarkedForEvent_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_part_vals = true && this.isSetPart_vals();
      boolean that_present_part_vals = true && that.isSetPart_vals();
      if (this_present_part_vals || that_present_part_vals) {
        if (!(this_present_part_vals && that_present_part_vals))
          return false;
        if (!this.part_vals.equals(that.part_vals))
          return false;
      }

      boolean this_present_eventType = true && this.isSetEventType();
      boolean that_present_eventType = true && that.isSetEventType();
      if (this_present_eventType || that_present_eventType) {
        if (!(this_present_eventType && that_present_eventType))
          return false;
        if (!this.eventType.equals(that.eventType))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetPart_vals()) ? 131071 : 524287);
      if (isSetPart_vals())
        hashCode = hashCode * 8191 + part_vals.hashCode();

      hashCode = hashCode * 8191 + ((isSetEventType()) ? 131071 : 524287);
      if (isSetEventType())
        hashCode = hashCode * 8191 + eventType.getValue();

      return hashCode;
    }

    @Override
    public int compareTo(isPartitionMarkedForEvent_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetPart_vals(), other.isSetPart_vals());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPart_vals()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.part_vals, other.part_vals);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetEventType(), other.isSetEventType());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetEventType()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.eventType, other.eventType);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("isPartitionMarkedForEvent_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("part_vals:");
      if (this.part_vals == null) {
        sb.append("null");
      } else {
        sb.append(this.part_vals);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("eventType:");
      if (this.eventType == null) {
        sb.append("null");
      } else {
        sb.append(this.eventType);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class isPartitionMarkedForEvent_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public isPartitionMarkedForEvent_argsStandardScheme getScheme() {
        return new isPartitionMarkedForEvent_argsStandardScheme();
      }
    }

    private static class isPartitionMarkedForEvent_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<isPartitionMarkedForEvent_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, isPartitionMarkedForEvent_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // PART_VALS
              if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
                {
                  org.apache.thrift.protocol.TMap _map1394 = iprot.readMapBegin();
                  struct.part_vals = new java.util.HashMap<java.lang.String,java.lang.String>(2*_map1394.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _key1395;
                  @org.apache.thrift.annotation.Nullable java.lang.String _val1396;
                  for (int _i1397 = 0; _i1397 < _map1394.size; ++_i1397)
                  {
                    _key1395 = iprot.readString();
                    _val1396 = iprot.readString();
                    struct.part_vals.put(_key1395, _val1396);
                  }
                  iprot.readMapEnd();
                }
                struct.setPart_valsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // EVENT_TYPE
              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
                struct.eventType = org.apache.hadoop.hive.metastore.api.PartitionEventType.findByValue(iprot.readI32());
                struct.setEventTypeIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, isPartitionMarkedForEvent_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        if (struct.part_vals != null) {
          oprot.writeFieldBegin(PART_VALS_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.part_vals.size()));
            for (java.util.Map.Entry<java.lang.String, java.lang.String> _iter1398 : struct.part_vals.entrySet())
            {
              oprot.writeString(_iter1398.getKey());
              oprot.writeString(_iter1398.getValue());
            }
            oprot.writeMapEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.eventType != null) {
          oprot.writeFieldBegin(EVENT_TYPE_FIELD_DESC);
          oprot.writeI32(struct.eventType.getValue());
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class isPartitionMarkedForEvent_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public isPartitionMarkedForEvent_argsTupleScheme getScheme() {
        return new isPartitionMarkedForEvent_argsTupleScheme();
      }
    }

    private static class isPartitionMarkedForEvent_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<isPartitionMarkedForEvent_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, isPartitionMarkedForEvent_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetPart_vals()) {
          optionals.set(2);
        }
        if (struct.isSetEventType()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetPart_vals()) {
          {
            oprot.writeI32(struct.part_vals.size());
            for (java.util.Map.Entry<java.lang.String, java.lang.String> _iter1399 : struct.part_vals.entrySet())
            {
              oprot.writeString(_iter1399.getKey());
              oprot.writeString(_iter1399.getValue());
            }
          }
        }
        if (struct.isSetEventType()) {
          oprot.writeI32(struct.eventType.getValue());
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, isPartitionMarkedForEvent_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          {
            org.apache.thrift.protocol.TMap _map1400 = iprot.readMapBegin(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING); 
            struct.part_vals = new java.util.HashMap<java.lang.String,java.lang.String>(2*_map1400.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _key1401;
            @org.apache.thrift.annotation.Nullable java.lang.String _val1402;
            for (int _i1403 = 0; _i1403 < _map1400.size; ++_i1403)
            {
              _key1401 = iprot.readString();
              _val1402 = iprot.readString();
              struct.part_vals.put(_key1401, _val1402);
            }
          }
          struct.setPart_valsIsSet(true);
        }
        if (incoming.get(3)) {
          struct.eventType = org.apache.hadoop.hive.metastore.api.PartitionEventType.findByValue(iprot.readI32());
          struct.setEventTypeIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class isPartitionMarkedForEvent_result implements org.apache.thrift.TBase<isPartitionMarkedForEvent_result, isPartitionMarkedForEvent_result._Fields>, java.io.Serializable, Cloneable, Comparable<isPartitionMarkedForEvent_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("isPartitionMarkedForEvent_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField O4_FIELD_DESC = new org.apache.thrift.protocol.TField("o4", org.apache.thrift.protocol.TType.STRUCT, (short)4);
    private static final org.apache.thrift.protocol.TField O5_FIELD_DESC = new org.apache.thrift.protocol.TField("o5", org.apache.thrift.protocol.TType.STRUCT, (short)5);
    private static final org.apache.thrift.protocol.TField O6_FIELD_DESC = new org.apache.thrift.protocol.TField("o6", org.apache.thrift.protocol.TType.STRUCT, (short)6);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new isPartitionMarkedForEvent_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new isPartitionMarkedForEvent_resultTupleSchemeFactory();

    private boolean success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // required
    private @org.apache.thrift.annotation.Nullable UnknownDBException o3; // required
    private @org.apache.thrift.annotation.Nullable UnknownTableException o4; // required
    private @org.apache.thrift.annotation.Nullable UnknownPartitionException o5; // required
    private @org.apache.thrift.annotation.Nullable InvalidPartitionException o6; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3"),
      O4((short)4, "o4"),
      O5((short)5, "o5"),
      O6((short)6, "o6");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          case 4: // O4
            return O4;
          case 5: // O5
            return O5;
          case 6: // O6
            return O6;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UnknownDBException.class)));
      tmpMap.put(_Fields.O4, new org.apache.thrift.meta_data.FieldMetaData("o4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UnknownTableException.class)));
      tmpMap.put(_Fields.O5, new org.apache.thrift.meta_data.FieldMetaData("o5", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UnknownPartitionException.class)));
      tmpMap.put(_Fields.O6, new org.apache.thrift.meta_data.FieldMetaData("o6", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidPartitionException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(isPartitionMarkedForEvent_result.class, metaDataMap);
    }

    public isPartitionMarkedForEvent_result() {
    }

    public isPartitionMarkedForEvent_result(
      boolean success,
      MetaException o1,
      NoSuchObjectException o2,
      UnknownDBException o3,
      UnknownTableException o4,
      UnknownPartitionException o5,
      InvalidPartitionException o6)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
      this.o4 = o4;
      this.o5 = o5;
      this.o6 = o6;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public isPartitionMarkedForEvent_result(isPartitionMarkedForEvent_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchObjectException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new UnknownDBException(other.o3);
      }
      if (other.isSetO4()) {
        this.o4 = new UnknownTableException(other.o4);
      }
      if (other.isSetO5()) {
        this.o5 = new UnknownPartitionException(other.o5);
      }
      if (other.isSetO6()) {
        this.o6 = new InvalidPartitionException(other.o6);
      }
    }

    public isPartitionMarkedForEvent_result deepCopy() {
      return new isPartitionMarkedForEvent_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = false;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
      this.o4 = null;
      this.o5 = null;
      this.o6 = null;
    }

    public boolean isSuccess() {
      return this.success;
    }

    public void setSuccess(boolean success) {
      this.success = success;
      setSuccessIsSet(true);
    }

    public void unsetSuccess() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public UnknownDBException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable UnknownDBException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public UnknownTableException getO4() {
      return this.o4;
    }

    public void setO4(@org.apache.thrift.annotation.Nullable UnknownTableException o4) {
      this.o4 = o4;
    }

    public void unsetO4() {
      this.o4 = null;
    }

    /** Returns true if field o4 is set (has been assigned a value) and false otherwise */
    public boolean isSetO4() {
      return this.o4 != null;
    }

    public void setO4IsSet(boolean value) {
      if (!value) {
        this.o4 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public UnknownPartitionException getO5() {
      return this.o5;
    }

    public void setO5(@org.apache.thrift.annotation.Nullable UnknownPartitionException o5) {
      this.o5 = o5;
    }

    public void unsetO5() {
      this.o5 = null;
    }

    /** Returns true if field o5 is set (has been assigned a value) and false otherwise */
    public boolean isSetO5() {
      return this.o5 != null;
    }

    public void setO5IsSet(boolean value) {
      if (!value) {
        this.o5 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidPartitionException getO6() {
      return this.o6;
    }

    public void setO6(@org.apache.thrift.annotation.Nullable InvalidPartitionException o6) {
      this.o6 = o6;
    }

    public void unsetO6() {
      this.o6 = null;
    }

    /** Returns true if field o6 is set (has been assigned a value) and false otherwise */
    public boolean isSetO6() {
      return this.o6 != null;
    }

    public void setO6IsSet(boolean value) {
      if (!value) {
        this.o6 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.lang.Boolean)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchObjectException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((UnknownDBException)value);
        }
        break;

      case O4:
        if (value == null) {
          unsetO4();
        } else {
          setO4((UnknownTableException)value);
        }
        break;

      case O5:
        if (value == null) {
          unsetO5();
        } else {
          setO5((UnknownPartitionException)value);
        }
        break;

      case O6:
        if (value == null) {
          unsetO6();
        } else {
          setO6((InvalidPartitionException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return isSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      case O4:
        return getO4();

      case O5:
        return getO5();

      case O6:
        return getO6();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      case O4:
        return isSetO4();
      case O5:
        return isSetO5();
      case O6:
        return isSetO6();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof isPartitionMarkedForEvent_result)
        return this.equals((isPartitionMarkedForEvent_result)that);
      return false;
    }

    public boolean equals(isPartitionMarkedForEvent_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      boolean this_present_o4 = true && this.isSetO4();
      boolean that_present_o4 = true && that.isSetO4();
      if (this_present_o4 || that_present_o4) {
        if (!(this_present_o4 && that_present_o4))
          return false;
        if (!this.o4.equals(that.o4))
          return false;
      }

      boolean this_present_o5 = true && this.isSetO5();
      boolean that_present_o5 = true && that.isSetO5();
      if (this_present_o5 || that_present_o5) {
        if (!(this_present_o5 && that_present_o5))
          return false;
        if (!this.o5.equals(that.o5))
          return false;
      }

      boolean this_present_o6 = true && this.isSetO6();
      boolean that_present_o6 = true && that.isSetO6();
      if (this_present_o6 || that_present_o6) {
        if (!(this_present_o6 && that_present_o6))
          return false;
        if (!this.o6.equals(that.o6))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      hashCode = hashCode * 8191 + ((isSetO4()) ? 131071 : 524287);
      if (isSetO4())
        hashCode = hashCode * 8191 + o4.hashCode();

      hashCode = hashCode * 8191 + ((isSetO5()) ? 131071 : 524287);
      if (isSetO5())
        hashCode = hashCode * 8191 + o5.hashCode();

      hashCode = hashCode * 8191 + ((isSetO6()) ? 131071 : 524287);
      if (isSetO6())
        hashCode = hashCode * 8191 + o6.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(isPartitionMarkedForEvent_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO4(), other.isSetO4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o4, other.o4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO5(), other.isSetO5());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO5()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o5, other.o5);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO6(), other.isSetO6());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO6()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o6, other.o6);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("isPartitionMarkedForEvent_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o4:");
      if (this.o4 == null) {
        sb.append("null");
      } else {
        sb.append(this.o4);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o5:");
      if (this.o5 == null) {
        sb.append("null");
      } else {
        sb.append(this.o5);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o6:");
      if (this.o6 == null) {
        sb.append("null");
      } else {
        sb.append(this.o6);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class isPartitionMarkedForEvent_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public isPartitionMarkedForEvent_resultStandardScheme getScheme() {
        return new isPartitionMarkedForEvent_resultStandardScheme();
      }
    }

    private static class isPartitionMarkedForEvent_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<isPartitionMarkedForEvent_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, isPartitionMarkedForEvent_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.success = iprot.readBool();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new UnknownDBException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // O4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o4 = new UnknownTableException();
                struct.o4.read(iprot);
                struct.setO4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // O5
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o5 = new UnknownPartitionException();
                struct.o5.read(iprot);
                struct.setO5IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 6: // O6
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o6 = new InvalidPartitionException();
                struct.o6.read(iprot);
                struct.setO6IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, isPartitionMarkedForEvent_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeBool(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o4 != null) {
          oprot.writeFieldBegin(O4_FIELD_DESC);
          struct.o4.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o5 != null) {
          oprot.writeFieldBegin(O5_FIELD_DESC);
          struct.o5.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o6 != null) {
          oprot.writeFieldBegin(O6_FIELD_DESC);
          struct.o6.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class isPartitionMarkedForEvent_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public isPartitionMarkedForEvent_resultTupleScheme getScheme() {
        return new isPartitionMarkedForEvent_resultTupleScheme();
      }
    }

    private static class isPartitionMarkedForEvent_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<isPartitionMarkedForEvent_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, isPartitionMarkedForEvent_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        if (struct.isSetO4()) {
          optionals.set(4);
        }
        if (struct.isSetO5()) {
          optionals.set(5);
        }
        if (struct.isSetO6()) {
          optionals.set(6);
        }
        oprot.writeBitSet(optionals, 7);
        if (struct.isSetSuccess()) {
          oprot.writeBool(struct.success);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
        if (struct.isSetO4()) {
          struct.o4.write(oprot);
        }
        if (struct.isSetO5()) {
          struct.o5.write(oprot);
        }
        if (struct.isSetO6()) {
          struct.o6.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, isPartitionMarkedForEvent_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(7);
        if (incoming.get(0)) {
          struct.success = iprot.readBool();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new NoSuchObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new UnknownDBException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.o4 = new UnknownTableException();
          struct.o4.read(iprot);
          struct.setO4IsSet(true);
        }
        if (incoming.get(5)) {
          struct.o5 = new UnknownPartitionException();
          struct.o5.read(iprot);
          struct.setO5IsSet(true);
        }
        if (incoming.get(6)) {
          struct.o6 = new InvalidPartitionException();
          struct.o6.read(iprot);
          struct.setO6IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_primary_keys_args implements org.apache.thrift.TBase<get_primary_keys_args, get_primary_keys_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_primary_keys_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_primary_keys_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_primary_keys_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_primary_keys_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable PrimaryKeysRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, PrimaryKeysRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_primary_keys_args.class, metaDataMap);
    }

    public get_primary_keys_args() {
    }

    public get_primary_keys_args(
      PrimaryKeysRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_primary_keys_args(get_primary_keys_args other) {
      if (other.isSetRequest()) {
        this.request = new PrimaryKeysRequest(other.request);
      }
    }

    public get_primary_keys_args deepCopy() {
      return new get_primary_keys_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    @org.apache.thrift.annotation.Nullable
    public PrimaryKeysRequest getRequest() {
      return this.request;
    }

    public void setRequest(@org.apache.thrift.annotation.Nullable PrimaryKeysRequest request) {
      this.request = request;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((PrimaryKeysRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_primary_keys_args)
        return this.equals((get_primary_keys_args)that);
      return false;
    }

    public boolean equals(get_primary_keys_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRequest()) ? 131071 : 524287);
      if (isSetRequest())
        hashCode = hashCode * 8191 + request.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_primary_keys_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRequest(), other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_primary_keys_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_primary_keys_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_primary_keys_argsStandardScheme getScheme() {
        return new get_primary_keys_argsStandardScheme();
      }
    }

    private static class get_primary_keys_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_primary_keys_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_primary_keys_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new PrimaryKeysRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_primary_keys_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_primary_keys_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_primary_keys_argsTupleScheme getScheme() {
        return new get_primary_keys_argsTupleScheme();
      }
    }

    private static class get_primary_keys_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_primary_keys_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_primary_keys_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_primary_keys_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new PrimaryKeysRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_primary_keys_result implements org.apache.thrift.TBase<get_primary_keys_result, get_primary_keys_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_primary_keys_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_primary_keys_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_primary_keys_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_primary_keys_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable PrimaryKeysResponse success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, PrimaryKeysResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_primary_keys_result.class, metaDataMap);
    }

    public get_primary_keys_result() {
    }

    public get_primary_keys_result(
      PrimaryKeysResponse success,
      MetaException o1,
      NoSuchObjectException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_primary_keys_result(get_primary_keys_result other) {
      if (other.isSetSuccess()) {
        this.success = new PrimaryKeysResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchObjectException(other.o2);
      }
    }

    public get_primary_keys_result deepCopy() {
      return new get_primary_keys_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public PrimaryKeysResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable PrimaryKeysResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((PrimaryKeysResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchObjectException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_primary_keys_result)
        return this.equals((get_primary_keys_result)that);
      return false;
    }

    public boolean equals(get_primary_keys_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_primary_keys_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_primary_keys_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_primary_keys_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_primary_keys_resultStandardScheme getScheme() {
        return new get_primary_keys_resultStandardScheme();
      }
    }

    private static class get_primary_keys_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_primary_keys_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_primary_keys_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new PrimaryKeysResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_primary_keys_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_primary_keys_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_primary_keys_resultTupleScheme getScheme() {
        return new get_primary_keys_resultTupleScheme();
      }
    }

    private static class get_primary_keys_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_primary_keys_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_primary_keys_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_primary_keys_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = new PrimaryKeysResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new NoSuchObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_foreign_keys_args implements org.apache.thrift.TBase<get_foreign_keys_args, get_foreign_keys_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_foreign_keys_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_foreign_keys_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_foreign_keys_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_foreign_keys_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable ForeignKeysRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ForeignKeysRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_foreign_keys_args.class, metaDataMap);
    }

    public get_foreign_keys_args() {
    }

    public get_foreign_keys_args(
      ForeignKeysRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_foreign_keys_args(get_foreign_keys_args other) {
      if (other.isSetRequest()) {
        this.request = new ForeignKeysRequest(other.request);
      }
    }

    public get_foreign_keys_args deepCopy() {
      return new get_foreign_keys_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    @org.apache.thrift.annotation.Nullable
    public ForeignKeysRequest getRequest() {
      return this.request;
    }

    public void setRequest(@org.apache.thrift.annotation.Nullable ForeignKeysRequest request) {
      this.request = request;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((ForeignKeysRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_foreign_keys_args)
        return this.equals((get_foreign_keys_args)that);
      return false;
    }

    public boolean equals(get_foreign_keys_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRequest()) ? 131071 : 524287);
      if (isSetRequest())
        hashCode = hashCode * 8191 + request.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_foreign_keys_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRequest(), other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_foreign_keys_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_foreign_keys_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_foreign_keys_argsStandardScheme getScheme() {
        return new get_foreign_keys_argsStandardScheme();
      }
    }

    private static class get_foreign_keys_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_foreign_keys_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_foreign_keys_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new ForeignKeysRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_foreign_keys_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_foreign_keys_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_foreign_keys_argsTupleScheme getScheme() {
        return new get_foreign_keys_argsTupleScheme();
      }
    }

    private static class get_foreign_keys_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_foreign_keys_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_foreign_keys_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_foreign_keys_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new ForeignKeysRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_foreign_keys_result implements org.apache.thrift.TBase<get_foreign_keys_result, get_foreign_keys_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_foreign_keys_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_foreign_keys_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_foreign_keys_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_foreign_keys_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable ForeignKeysResponse success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ForeignKeysResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_foreign_keys_result.class, metaDataMap);
    }

    public get_foreign_keys_result() {
    }

    public get_foreign_keys_result(
      ForeignKeysResponse success,
      MetaException o1,
      NoSuchObjectException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_foreign_keys_result(get_foreign_keys_result other) {
      if (other.isSetSuccess()) {
        this.success = new ForeignKeysResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchObjectException(other.o2);
      }
    }

    public get_foreign_keys_result deepCopy() {
      return new get_foreign_keys_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public ForeignKeysResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable ForeignKeysResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((ForeignKeysResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchObjectException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_foreign_keys_result)
        return this.equals((get_foreign_keys_result)that);
      return false;
    }

    public boolean equals(get_foreign_keys_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_foreign_keys_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_foreign_keys_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_foreign_keys_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_foreign_keys_resultStandardScheme getScheme() {
        return new get_foreign_keys_resultStandardScheme();
      }
    }

    private static class get_foreign_keys_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_foreign_keys_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_foreign_keys_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new ForeignKeysResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_foreign_keys_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_foreign_keys_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_foreign_keys_resultTupleScheme getScheme() {
        return new get_foreign_keys_resultTupleScheme();
      }
    }

    private static class get_foreign_keys_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_foreign_keys_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_foreign_keys_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_foreign_keys_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = new ForeignKeysResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new NoSuchObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_unique_constraints_args implements org.apache.thrift.TBase<get_unique_constraints_args, get_unique_constraints_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_unique_constraints_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_unique_constraints_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_unique_constraints_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_unique_constraints_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable UniqueConstraintsRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UniqueConstraintsRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_unique_constraints_args.class, metaDataMap);
    }

    public get_unique_constraints_args() {
    }

    public get_unique_constraints_args(
      UniqueConstraintsRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_unique_constraints_args(get_unique_constraints_args other) {
      if (other.isSetRequest()) {
        this.request = new UniqueConstraintsRequest(other.request);
      }
    }

    public get_unique_constraints_args deepCopy() {
      return new get_unique_constraints_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    @org.apache.thrift.annotation.Nullable
    public UniqueConstraintsRequest getRequest() {
      return this.request;
    }

    public void setRequest(@org.apache.thrift.annotation.Nullable UniqueConstraintsRequest request) {
      this.request = request;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((UniqueConstraintsRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_unique_constraints_args)
        return this.equals((get_unique_constraints_args)that);
      return false;
    }

    public boolean equals(get_unique_constraints_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRequest()) ? 131071 : 524287);
      if (isSetRequest())
        hashCode = hashCode * 8191 + request.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_unique_constraints_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRequest(), other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_unique_constraints_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_unique_constraints_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_unique_constraints_argsStandardScheme getScheme() {
        return new get_unique_constraints_argsStandardScheme();
      }
    }

    private static class get_unique_constraints_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_unique_constraints_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_unique_constraints_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new UniqueConstraintsRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_unique_constraints_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_unique_constraints_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_unique_constraints_argsTupleScheme getScheme() {
        return new get_unique_constraints_argsTupleScheme();
      }
    }

    private static class get_unique_constraints_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_unique_constraints_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_unique_constraints_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_unique_constraints_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new UniqueConstraintsRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_unique_constraints_result implements org.apache.thrift.TBase<get_unique_constraints_result, get_unique_constraints_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_unique_constraints_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_unique_constraints_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_unique_constraints_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_unique_constraints_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable UniqueConstraintsResponse success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UniqueConstraintsResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_unique_constraints_result.class, metaDataMap);
    }

    public get_unique_constraints_result() {
    }

    public get_unique_constraints_result(
      UniqueConstraintsResponse success,
      MetaException o1,
      NoSuchObjectException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_unique_constraints_result(get_unique_constraints_result other) {
      if (other.isSetSuccess()) {
        this.success = new UniqueConstraintsResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchObjectException(other.o2);
      }
    }

    public get_unique_constraints_result deepCopy() {
      return new get_unique_constraints_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public UniqueConstraintsResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable UniqueConstraintsResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((UniqueConstraintsResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchObjectException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_unique_constraints_result)
        return this.equals((get_unique_constraints_result)that);
      return false;
    }

    public boolean equals(get_unique_constraints_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_unique_constraints_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_unique_constraints_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_unique_constraints_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_unique_constraints_resultStandardScheme getScheme() {
        return new get_unique_constraints_resultStandardScheme();
      }
    }

    private static class get_unique_constraints_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_unique_constraints_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_unique_constraints_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new UniqueConstraintsResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_unique_constraints_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_unique_constraints_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_unique_constraints_resultTupleScheme getScheme() {
        return new get_unique_constraints_resultTupleScheme();
      }
    }

    private static class get_unique_constraints_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_unique_constraints_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_unique_constraints_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_unique_constraints_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = new UniqueConstraintsResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new NoSuchObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_not_null_constraints_args implements org.apache.thrift.TBase<get_not_null_constraints_args, get_not_null_constraints_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_not_null_constraints_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_not_null_constraints_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_not_null_constraints_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_not_null_constraints_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable NotNullConstraintsRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NotNullConstraintsRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_not_null_constraints_args.class, metaDataMap);
    }

    public get_not_null_constraints_args() {
    }

    public get_not_null_constraints_args(
      NotNullConstraintsRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_not_null_constraints_args(get_not_null_constraints_args other) {
      if (other.isSetRequest()) {
        this.request = new NotNullConstraintsRequest(other.request);
      }
    }

    public get_not_null_constraints_args deepCopy() {
      return new get_not_null_constraints_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    @org.apache.thrift.annotation.Nullable
    public NotNullConstraintsRequest getRequest() {
      return this.request;
    }

    public void setRequest(@org.apache.thrift.annotation.Nullable NotNullConstraintsRequest request) {
      this.request = request;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((NotNullConstraintsRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_not_null_constraints_args)
        return this.equals((get_not_null_constraints_args)that);
      return false;
    }

    public boolean equals(get_not_null_constraints_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRequest()) ? 131071 : 524287);
      if (isSetRequest())
        hashCode = hashCode * 8191 + request.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_not_null_constraints_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRequest(), other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_not_null_constraints_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_not_null_constraints_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_not_null_constraints_argsStandardScheme getScheme() {
        return new get_not_null_constraints_argsStandardScheme();
      }
    }

    private static class get_not_null_constraints_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_not_null_constraints_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_not_null_constraints_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new NotNullConstraintsRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_not_null_constraints_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_not_null_constraints_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_not_null_constraints_argsTupleScheme getScheme() {
        return new get_not_null_constraints_argsTupleScheme();
      }
    }

    private static class get_not_null_constraints_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_not_null_constraints_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_not_null_constraints_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_not_null_constraints_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new NotNullConstraintsRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_not_null_constraints_result implements org.apache.thrift.TBase<get_not_null_constraints_result, get_not_null_constraints_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_not_null_constraints_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_not_null_constraints_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_not_null_constraints_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_not_null_constraints_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable NotNullConstraintsResponse success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NotNullConstraintsResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_not_null_constraints_result.class, metaDataMap);
    }

    public get_not_null_constraints_result() {
    }

    public get_not_null_constraints_result(
      NotNullConstraintsResponse success,
      MetaException o1,
      NoSuchObjectException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_not_null_constraints_result(get_not_null_constraints_result other) {
      if (other.isSetSuccess()) {
        this.success = new NotNullConstraintsResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchObjectException(other.o2);
      }
    }

    public get_not_null_constraints_result deepCopy() {
      return new get_not_null_constraints_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public NotNullConstraintsResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable NotNullConstraintsResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((NotNullConstraintsResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchObjectException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_not_null_constraints_result)
        return this.equals((get_not_null_constraints_result)that);
      return false;
    }

    public boolean equals(get_not_null_constraints_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_not_null_constraints_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_not_null_constraints_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_not_null_constraints_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_not_null_constraints_resultStandardScheme getScheme() {
        return new get_not_null_constraints_resultStandardScheme();
      }
    }

    private static class get_not_null_constraints_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_not_null_constraints_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_not_null_constraints_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new NotNullConstraintsResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_not_null_constraints_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_not_null_constraints_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_not_null_constraints_resultTupleScheme getScheme() {
        return new get_not_null_constraints_resultTupleScheme();
      }
    }

    private static class get_not_null_constraints_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_not_null_constraints_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_not_null_constraints_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_not_null_constraints_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = new NotNullConstraintsResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new NoSuchObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_default_constraints_args implements org.apache.thrift.TBase<get_default_constraints_args, get_default_constraints_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_default_constraints_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_default_constraints_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_default_constraints_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_default_constraints_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable DefaultConstraintsRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, DefaultConstraintsRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_default_constraints_args.class, metaDataMap);
    }

    public get_default_constraints_args() {
    }

    public get_default_constraints_args(
      DefaultConstraintsRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_default_constraints_args(get_default_constraints_args other) {
      if (other.isSetRequest()) {
        this.request = new DefaultConstraintsRequest(other.request);
      }
    }

    public get_default_constraints_args deepCopy() {
      return new get_default_constraints_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    @org.apache.thrift.annotation.Nullable
    public DefaultConstraintsRequest getRequest() {
      return this.request;
    }

    public void setRequest(@org.apache.thrift.annotation.Nullable DefaultConstraintsRequest request) {
      this.request = request;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((DefaultConstraintsRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_default_constraints_args)
        return this.equals((get_default_constraints_args)that);
      return false;
    }

    public boolean equals(get_default_constraints_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRequest()) ? 131071 : 524287);
      if (isSetRequest())
        hashCode = hashCode * 8191 + request.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_default_constraints_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRequest(), other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_default_constraints_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_default_constraints_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_default_constraints_argsStandardScheme getScheme() {
        return new get_default_constraints_argsStandardScheme();
      }
    }

    private static class get_default_constraints_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_default_constraints_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_default_constraints_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new DefaultConstraintsRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_default_constraints_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_default_constraints_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_default_constraints_argsTupleScheme getScheme() {
        return new get_default_constraints_argsTupleScheme();
      }
    }

    private static class get_default_constraints_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_default_constraints_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_default_constraints_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_default_constraints_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new DefaultConstraintsRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_default_constraints_result implements org.apache.thrift.TBase<get_default_constraints_result, get_default_constraints_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_default_constraints_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_default_constraints_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_default_constraints_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_default_constraints_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable DefaultConstraintsResponse success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, DefaultConstraintsResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_default_constraints_result.class, metaDataMap);
    }

    public get_default_constraints_result() {
    }

    public get_default_constraints_result(
      DefaultConstraintsResponse success,
      MetaException o1,
      NoSuchObjectException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_default_constraints_result(get_default_constraints_result other) {
      if (other.isSetSuccess()) {
        this.success = new DefaultConstraintsResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchObjectException(other.o2);
      }
    }

    public get_default_constraints_result deepCopy() {
      return new get_default_constraints_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public DefaultConstraintsResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable DefaultConstraintsResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((DefaultConstraintsResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchObjectException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_default_constraints_result)
        return this.equals((get_default_constraints_result)that);
      return false;
    }

    public boolean equals(get_default_constraints_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_default_constraints_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_default_constraints_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_default_constraints_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_default_constraints_resultStandardScheme getScheme() {
        return new get_default_constraints_resultStandardScheme();
      }
    }

    private static class get_default_constraints_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_default_constraints_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_default_constraints_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new DefaultConstraintsResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_default_constraints_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_default_constraints_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_default_constraints_resultTupleScheme getScheme() {
        return new get_default_constraints_resultTupleScheme();
      }
    }

    private static class get_default_constraints_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_default_constraints_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_default_constraints_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_default_constraints_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = new DefaultConstraintsResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new NoSuchObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_check_constraints_args implements org.apache.thrift.TBase<get_check_constraints_args, get_check_constraints_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_check_constraints_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_check_constraints_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_check_constraints_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_check_constraints_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable CheckConstraintsRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CheckConstraintsRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_check_constraints_args.class, metaDataMap);
    }

    public get_check_constraints_args() {
    }

    public get_check_constraints_args(
      CheckConstraintsRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_check_constraints_args(get_check_constraints_args other) {
      if (other.isSetRequest()) {
        this.request = new CheckConstraintsRequest(other.request);
      }
    }

    public get_check_constraints_args deepCopy() {
      return new get_check_constraints_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    @org.apache.thrift.annotation.Nullable
    public CheckConstraintsRequest getRequest() {
      return this.request;
    }

    public void setRequest(@org.apache.thrift.annotation.Nullable CheckConstraintsRequest request) {
      this.request = request;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((CheckConstraintsRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_check_constraints_args)
        return this.equals((get_check_constraints_args)that);
      return false;
    }

    public boolean equals(get_check_constraints_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRequest()) ? 131071 : 524287);
      if (isSetRequest())
        hashCode = hashCode * 8191 + request.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_check_constraints_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRequest(), other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_check_constraints_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_check_constraints_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_check_constraints_argsStandardScheme getScheme() {
        return new get_check_constraints_argsStandardScheme();
      }
    }

    private static class get_check_constraints_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_check_constraints_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_check_constraints_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new CheckConstraintsRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_check_constraints_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_check_constraints_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_check_constraints_argsTupleScheme getScheme() {
        return new get_check_constraints_argsTupleScheme();
      }
    }

    private static class get_check_constraints_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_check_constraints_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_check_constraints_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_check_constraints_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new CheckConstraintsRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_check_constraints_result implements org.apache.thrift.TBase<get_check_constraints_result, get_check_constraints_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_check_constraints_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_check_constraints_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_check_constraints_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_check_constraints_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable CheckConstraintsResponse success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CheckConstraintsResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_check_constraints_result.class, metaDataMap);
    }

    public get_check_constraints_result() {
    }

    public get_check_constraints_result(
      CheckConstraintsResponse success,
      MetaException o1,
      NoSuchObjectException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_check_constraints_result(get_check_constraints_result other) {
      if (other.isSetSuccess()) {
        this.success = new CheckConstraintsResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchObjectException(other.o2);
      }
    }

    public get_check_constraints_result deepCopy() {
      return new get_check_constraints_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public CheckConstraintsResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable CheckConstraintsResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((CheckConstraintsResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchObjectException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_check_constraints_result)
        return this.equals((get_check_constraints_result)that);
      return false;
    }

    public boolean equals(get_check_constraints_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_check_constraints_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_check_constraints_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_check_constraints_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_check_constraints_resultStandardScheme getScheme() {
        return new get_check_constraints_resultStandardScheme();
      }
    }

    private static class get_check_constraints_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_check_constraints_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_check_constraints_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new CheckConstraintsResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_check_constraints_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_check_constraints_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_check_constraints_resultTupleScheme getScheme() {
        return new get_check_constraints_resultTupleScheme();
      }
    }

    private static class get_check_constraints_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_check_constraints_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_check_constraints_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_check_constraints_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = new CheckConstraintsResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new NoSuchObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class update_table_column_statistics_args implements org.apache.thrift.TBase<update_table_column_statistics_args, update_table_column_statistics_args._Fields>, java.io.Serializable, Cloneable, Comparable<update_table_column_statistics_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("update_table_column_statistics_args");

    private static final org.apache.thrift.protocol.TField STATS_OBJ_FIELD_DESC = new org.apache.thrift.protocol.TField("stats_obj", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new update_table_column_statistics_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new update_table_column_statistics_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable ColumnStatistics stats_obj; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      STATS_OBJ((short)1, "stats_obj");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // STATS_OBJ
            return STATS_OBJ;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.STATS_OBJ, new org.apache.thrift.meta_data.FieldMetaData("stats_obj", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ColumnStatistics.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(update_table_column_statistics_args.class, metaDataMap);
    }

    public update_table_column_statistics_args() {
    }

    public update_table_column_statistics_args(
      ColumnStatistics stats_obj)
    {
      this();
      this.stats_obj = stats_obj;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public update_table_column_statistics_args(update_table_column_statistics_args other) {
      if (other.isSetStats_obj()) {
        this.stats_obj = new ColumnStatistics(other.stats_obj);
      }
    }

    public update_table_column_statistics_args deepCopy() {
      return new update_table_column_statistics_args(this);
    }

    @Override
    public void clear() {
      this.stats_obj = null;
    }

    @org.apache.thrift.annotation.Nullable
    public ColumnStatistics getStats_obj() {
      return this.stats_obj;
    }

    public void setStats_obj(@org.apache.thrift.annotation.Nullable ColumnStatistics stats_obj) {
      this.stats_obj = stats_obj;
    }

    public void unsetStats_obj() {
      this.stats_obj = null;
    }

    /** Returns true if field stats_obj is set (has been assigned a value) and false otherwise */
    public boolean isSetStats_obj() {
      return this.stats_obj != null;
    }

    public void setStats_objIsSet(boolean value) {
      if (!value) {
        this.stats_obj = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case STATS_OBJ:
        if (value == null) {
          unsetStats_obj();
        } else {
          setStats_obj((ColumnStatistics)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case STATS_OBJ:
        return getStats_obj();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case STATS_OBJ:
        return isSetStats_obj();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof update_table_column_statistics_args)
        return this.equals((update_table_column_statistics_args)that);
      return false;
    }

    public boolean equals(update_table_column_statistics_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_stats_obj = true && this.isSetStats_obj();
      boolean that_present_stats_obj = true && that.isSetStats_obj();
      if (this_present_stats_obj || that_present_stats_obj) {
        if (!(this_present_stats_obj && that_present_stats_obj))
          return false;
        if (!this.stats_obj.equals(that.stats_obj))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetStats_obj()) ? 131071 : 524287);
      if (isSetStats_obj())
        hashCode = hashCode * 8191 + stats_obj.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(update_table_column_statistics_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetStats_obj(), other.isSetStats_obj());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetStats_obj()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.stats_obj, other.stats_obj);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("update_table_column_statistics_args(");
      boolean first = true;

      sb.append("stats_obj:");
      if (this.stats_obj == null) {
        sb.append("null");
      } else {
        sb.append(this.stats_obj);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (stats_obj != null) {
        stats_obj.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class update_table_column_statistics_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public update_table_column_statistics_argsStandardScheme getScheme() {
        return new update_table_column_statistics_argsStandardScheme();
      }
    }

    private static class update_table_column_statistics_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<update_table_column_statistics_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, update_table_column_statistics_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // STATS_OBJ
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.stats_obj = new ColumnStatistics();
                struct.stats_obj.read(iprot);
                struct.setStats_objIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, update_table_column_statistics_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.stats_obj != null) {
          oprot.writeFieldBegin(STATS_OBJ_FIELD_DESC);
          struct.stats_obj.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class update_table_column_statistics_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public update_table_column_statistics_argsTupleScheme getScheme() {
        return new update_table_column_statistics_argsTupleScheme();
      }
    }

    private static class update_table_column_statistics_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<update_table_column_statistics_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, update_table_column_statistics_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetStats_obj()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetStats_obj()) {
          struct.stats_obj.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, update_table_column_statistics_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.stats_obj = new ColumnStatistics();
          struct.stats_obj.read(iprot);
          struct.setStats_objIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class update_table_column_statistics_result implements org.apache.thrift.TBase<update_table_column_statistics_result, update_table_column_statistics_result._Fields>, java.io.Serializable, Cloneable, Comparable<update_table_column_statistics_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("update_table_column_statistics_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField O4_FIELD_DESC = new org.apache.thrift.protocol.TField("o4", org.apache.thrift.protocol.TType.STRUCT, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new update_table_column_statistics_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new update_table_column_statistics_resultTupleSchemeFactory();

    private boolean success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable InvalidObjectException o2; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required
    private @org.apache.thrift.annotation.Nullable InvalidInputException o4; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3"),
      O4((short)4, "o4");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          case 4: // O4
            return O4;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidObjectException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O4, new org.apache.thrift.meta_data.FieldMetaData("o4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidInputException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(update_table_column_statistics_result.class, metaDataMap);
    }

    public update_table_column_statistics_result() {
    }

    public update_table_column_statistics_result(
      boolean success,
      NoSuchObjectException o1,
      InvalidObjectException o2,
      MetaException o3,
      InvalidInputException o4)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
      this.o4 = o4;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public update_table_column_statistics_result(update_table_column_statistics_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new InvalidObjectException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
      if (other.isSetO4()) {
        this.o4 = new InvalidInputException(other.o4);
      }
    }

    public update_table_column_statistics_result deepCopy() {
      return new update_table_column_statistics_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = false;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
      this.o4 = null;
    }

    public boolean isSuccess() {
      return this.success;
    }

    public void setSuccess(boolean success) {
      this.success = success;
      setSuccessIsSet(true);
    }

    public void unsetSuccess() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable InvalidObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidInputException getO4() {
      return this.o4;
    }

    public void setO4(@org.apache.thrift.annotation.Nullable InvalidInputException o4) {
      this.o4 = o4;
    }

    public void unsetO4() {
      this.o4 = null;
    }

    /** Returns true if field o4 is set (has been assigned a value) and false otherwise */
    public boolean isSetO4() {
      return this.o4 != null;
    }

    public void setO4IsSet(boolean value) {
      if (!value) {
        this.o4 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.lang.Boolean)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((InvalidObjectException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      case O4:
        if (value == null) {
          unsetO4();
        } else {
          setO4((InvalidInputException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return isSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      case O4:
        return getO4();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      case O4:
        return isSetO4();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof update_table_column_statistics_result)
        return this.equals((update_table_column_statistics_result)that);
      return false;
    }

    public boolean equals(update_table_column_statistics_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      boolean this_present_o4 = true && this.isSetO4();
      boolean that_present_o4 = true && that.isSetO4();
      if (this_present_o4 || that_present_o4) {
        if (!(this_present_o4 && that_present_o4))
          return false;
        if (!this.o4.equals(that.o4))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      hashCode = hashCode * 8191 + ((isSetO4()) ? 131071 : 524287);
      if (isSetO4())
        hashCode = hashCode * 8191 + o4.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(update_table_column_statistics_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO4(), other.isSetO4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o4, other.o4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("update_table_column_statistics_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o4:");
      if (this.o4 == null) {
        sb.append("null");
      } else {
        sb.append(this.o4);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class update_table_column_statistics_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public update_table_column_statistics_resultStandardScheme getScheme() {
        return new update_table_column_statistics_resultStandardScheme();
      }
    }

    private static class update_table_column_statistics_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<update_table_column_statistics_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, update_table_column_statistics_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.success = iprot.readBool();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new InvalidObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // O4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o4 = new InvalidInputException();
                struct.o4.read(iprot);
                struct.setO4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, update_table_column_statistics_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeBool(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o4 != null) {
          oprot.writeFieldBegin(O4_FIELD_DESC);
          struct.o4.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class update_table_column_statistics_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public update_table_column_statistics_resultTupleScheme getScheme() {
        return new update_table_column_statistics_resultTupleScheme();
      }
    }

    private static class update_table_column_statistics_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<update_table_column_statistics_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, update_table_column_statistics_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        if (struct.isSetO4()) {
          optionals.set(4);
        }
        oprot.writeBitSet(optionals, 5);
        if (struct.isSetSuccess()) {
          oprot.writeBool(struct.success);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
        if (struct.isSetO4()) {
          struct.o4.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, update_table_column_statistics_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(5);
        if (incoming.get(0)) {
          struct.success = iprot.readBool();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new InvalidObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.o4 = new InvalidInputException();
          struct.o4.read(iprot);
          struct.setO4IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class update_partition_column_statistics_args implements org.apache.thrift.TBase<update_partition_column_statistics_args, update_partition_column_statistics_args._Fields>, java.io.Serializable, Cloneable, Comparable<update_partition_column_statistics_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("update_partition_column_statistics_args");

    private static final org.apache.thrift.protocol.TField STATS_OBJ_FIELD_DESC = new org.apache.thrift.protocol.TField("stats_obj", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new update_partition_column_statistics_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new update_partition_column_statistics_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable ColumnStatistics stats_obj; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      STATS_OBJ((short)1, "stats_obj");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // STATS_OBJ
            return STATS_OBJ;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.STATS_OBJ, new org.apache.thrift.meta_data.FieldMetaData("stats_obj", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ColumnStatistics.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(update_partition_column_statistics_args.class, metaDataMap);
    }

    public update_partition_column_statistics_args() {
    }

    public update_partition_column_statistics_args(
      ColumnStatistics stats_obj)
    {
      this();
      this.stats_obj = stats_obj;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public update_partition_column_statistics_args(update_partition_column_statistics_args other) {
      if (other.isSetStats_obj()) {
        this.stats_obj = new ColumnStatistics(other.stats_obj);
      }
    }

    public update_partition_column_statistics_args deepCopy() {
      return new update_partition_column_statistics_args(this);
    }

    @Override
    public void clear() {
      this.stats_obj = null;
    }

    @org.apache.thrift.annotation.Nullable
    public ColumnStatistics getStats_obj() {
      return this.stats_obj;
    }

    public void setStats_obj(@org.apache.thrift.annotation.Nullable ColumnStatistics stats_obj) {
      this.stats_obj = stats_obj;
    }

    public void unsetStats_obj() {
      this.stats_obj = null;
    }

    /** Returns true if field stats_obj is set (has been assigned a value) and false otherwise */
    public boolean isSetStats_obj() {
      return this.stats_obj != null;
    }

    public void setStats_objIsSet(boolean value) {
      if (!value) {
        this.stats_obj = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case STATS_OBJ:
        if (value == null) {
          unsetStats_obj();
        } else {
          setStats_obj((ColumnStatistics)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case STATS_OBJ:
        return getStats_obj();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case STATS_OBJ:
        return isSetStats_obj();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof update_partition_column_statistics_args)
        return this.equals((update_partition_column_statistics_args)that);
      return false;
    }

    public boolean equals(update_partition_column_statistics_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_stats_obj = true && this.isSetStats_obj();
      boolean that_present_stats_obj = true && that.isSetStats_obj();
      if (this_present_stats_obj || that_present_stats_obj) {
        if (!(this_present_stats_obj && that_present_stats_obj))
          return false;
        if (!this.stats_obj.equals(that.stats_obj))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetStats_obj()) ? 131071 : 524287);
      if (isSetStats_obj())
        hashCode = hashCode * 8191 + stats_obj.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(update_partition_column_statistics_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetStats_obj(), other.isSetStats_obj());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetStats_obj()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.stats_obj, other.stats_obj);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("update_partition_column_statistics_args(");
      boolean first = true;

      sb.append("stats_obj:");
      if (this.stats_obj == null) {
        sb.append("null");
      } else {
        sb.append(this.stats_obj);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (stats_obj != null) {
        stats_obj.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class update_partition_column_statistics_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public update_partition_column_statistics_argsStandardScheme getScheme() {
        return new update_partition_column_statistics_argsStandardScheme();
      }
    }

    private static class update_partition_column_statistics_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<update_partition_column_statistics_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, update_partition_column_statistics_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // STATS_OBJ
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.stats_obj = new ColumnStatistics();
                struct.stats_obj.read(iprot);
                struct.setStats_objIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, update_partition_column_statistics_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.stats_obj != null) {
          oprot.writeFieldBegin(STATS_OBJ_FIELD_DESC);
          struct.stats_obj.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class update_partition_column_statistics_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public update_partition_column_statistics_argsTupleScheme getScheme() {
        return new update_partition_column_statistics_argsTupleScheme();
      }
    }

    private static class update_partition_column_statistics_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<update_partition_column_statistics_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, update_partition_column_statistics_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetStats_obj()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetStats_obj()) {
          struct.stats_obj.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, update_partition_column_statistics_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.stats_obj = new ColumnStatistics();
          struct.stats_obj.read(iprot);
          struct.setStats_objIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class update_partition_column_statistics_result implements org.apache.thrift.TBase<update_partition_column_statistics_result, update_partition_column_statistics_result._Fields>, java.io.Serializable, Cloneable, Comparable<update_partition_column_statistics_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("update_partition_column_statistics_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField O4_FIELD_DESC = new org.apache.thrift.protocol.TField("o4", org.apache.thrift.protocol.TType.STRUCT, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new update_partition_column_statistics_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new update_partition_column_statistics_resultTupleSchemeFactory();

    private boolean success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable InvalidObjectException o2; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required
    private @org.apache.thrift.annotation.Nullable InvalidInputException o4; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3"),
      O4((short)4, "o4");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          case 4: // O4
            return O4;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidObjectException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O4, new org.apache.thrift.meta_data.FieldMetaData("o4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidInputException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(update_partition_column_statistics_result.class, metaDataMap);
    }

    public update_partition_column_statistics_result() {
    }

    public update_partition_column_statistics_result(
      boolean success,
      NoSuchObjectException o1,
      InvalidObjectException o2,
      MetaException o3,
      InvalidInputException o4)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
      this.o4 = o4;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public update_partition_column_statistics_result(update_partition_column_statistics_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new InvalidObjectException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
      if (other.isSetO4()) {
        this.o4 = new InvalidInputException(other.o4);
      }
    }

    public update_partition_column_statistics_result deepCopy() {
      return new update_partition_column_statistics_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = false;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
      this.o4 = null;
    }

    public boolean isSuccess() {
      return this.success;
    }

    public void setSuccess(boolean success) {
      this.success = success;
      setSuccessIsSet(true);
    }

    public void unsetSuccess() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable InvalidObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidInputException getO4() {
      return this.o4;
    }

    public void setO4(@org.apache.thrift.annotation.Nullable InvalidInputException o4) {
      this.o4 = o4;
    }

    public void unsetO4() {
      this.o4 = null;
    }

    /** Returns true if field o4 is set (has been assigned a value) and false otherwise */
    public boolean isSetO4() {
      return this.o4 != null;
    }

    public void setO4IsSet(boolean value) {
      if (!value) {
        this.o4 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.lang.Boolean)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((InvalidObjectException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      case O4:
        if (value == null) {
          unsetO4();
        } else {
          setO4((InvalidInputException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return isSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      case O4:
        return getO4();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      case O4:
        return isSetO4();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof update_partition_column_statistics_result)
        return this.equals((update_partition_column_statistics_result)that);
      return false;
    }

    public boolean equals(update_partition_column_statistics_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      boolean this_present_o4 = true && this.isSetO4();
      boolean that_present_o4 = true && that.isSetO4();
      if (this_present_o4 || that_present_o4) {
        if (!(this_present_o4 && that_present_o4))
          return false;
        if (!this.o4.equals(that.o4))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      hashCode = hashCode * 8191 + ((isSetO4()) ? 131071 : 524287);
      if (isSetO4())
        hashCode = hashCode * 8191 + o4.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(update_partition_column_statistics_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO4(), other.isSetO4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o4, other.o4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("update_partition_column_statistics_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o4:");
      if (this.o4 == null) {
        sb.append("null");
      } else {
        sb.append(this.o4);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class update_partition_column_statistics_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public update_partition_column_statistics_resultStandardScheme getScheme() {
        return new update_partition_column_statistics_resultStandardScheme();
      }
    }

    private static class update_partition_column_statistics_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<update_partition_column_statistics_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, update_partition_column_statistics_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.success = iprot.readBool();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new InvalidObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // O4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o4 = new InvalidInputException();
                struct.o4.read(iprot);
                struct.setO4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, update_partition_column_statistics_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeBool(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o4 != null) {
          oprot.writeFieldBegin(O4_FIELD_DESC);
          struct.o4.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class update_partition_column_statistics_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public update_partition_column_statistics_resultTupleScheme getScheme() {
        return new update_partition_column_statistics_resultTupleScheme();
      }
    }

    private static class update_partition_column_statistics_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<update_partition_column_statistics_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, update_partition_column_statistics_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        if (struct.isSetO4()) {
          optionals.set(4);
        }
        oprot.writeBitSet(optionals, 5);
        if (struct.isSetSuccess()) {
          oprot.writeBool(struct.success);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
        if (struct.isSetO4()) {
          struct.o4.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, update_partition_column_statistics_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(5);
        if (incoming.get(0)) {
          struct.success = iprot.readBool();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new InvalidObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.o4 = new InvalidInputException();
          struct.o4.read(iprot);
          struct.setO4IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_column_statistics_args implements org.apache.thrift.TBase<get_table_column_statistics_args, get_table_column_statistics_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_table_column_statistics_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_table_column_statistics_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField COL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("col_name", org.apache.thrift.protocol.TType.STRING, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_table_column_statistics_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_table_column_statistics_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String col_name; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TBL_NAME((short)2, "tbl_name"),
      COL_NAME((short)3, "col_name");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // COL_NAME
            return COL_NAME;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.COL_NAME, new org.apache.thrift.meta_data.FieldMetaData("col_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_table_column_statistics_args.class, metaDataMap);
    }

    public get_table_column_statistics_args() {
    }

    public get_table_column_statistics_args(
      java.lang.String db_name,
      java.lang.String tbl_name,
      java.lang.String col_name)
    {
      this();
      this.db_name = db_name;
      this.tbl_name = tbl_name;
      this.col_name = col_name;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_table_column_statistics_args(get_table_column_statistics_args other) {
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      if (other.isSetCol_name()) {
        this.col_name = other.col_name;
      }
    }

    public get_table_column_statistics_args deepCopy() {
      return new get_table_column_statistics_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.tbl_name = null;
      this.col_name = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getCol_name() {
      return this.col_name;
    }

    public void setCol_name(@org.apache.thrift.annotation.Nullable java.lang.String col_name) {
      this.col_name = col_name;
    }

    public void unsetCol_name() {
      this.col_name = null;
    }

    /** Returns true if field col_name is set (has been assigned a value) and false otherwise */
    public boolean isSetCol_name() {
      return this.col_name != null;
    }

    public void setCol_nameIsSet(boolean value) {
      if (!value) {
        this.col_name = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case COL_NAME:
        if (value == null) {
          unsetCol_name();
        } else {
          setCol_name((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TBL_NAME:
        return getTbl_name();

      case COL_NAME:
        return getCol_name();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TBL_NAME:
        return isSetTbl_name();
      case COL_NAME:
        return isSetCol_name();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_table_column_statistics_args)
        return this.equals((get_table_column_statistics_args)that);
      return false;
    }

    public boolean equals(get_table_column_statistics_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_col_name = true && this.isSetCol_name();
      boolean that_present_col_name = true && that.isSetCol_name();
      if (this_present_col_name || that_present_col_name) {
        if (!(this_present_col_name && that_present_col_name))
          return false;
        if (!this.col_name.equals(that.col_name))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetCol_name()) ? 131071 : 524287);
      if (isSetCol_name())
        hashCode = hashCode * 8191 + col_name.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_table_column_statistics_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetCol_name(), other.isSetCol_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetCol_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.col_name, other.col_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_table_column_statistics_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("col_name:");
      if (this.col_name == null) {
        sb.append("null");
      } else {
        sb.append(this.col_name);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_table_column_statistics_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_table_column_statistics_argsStandardScheme getScheme() {
        return new get_table_column_statistics_argsStandardScheme();
      }
    }

    private static class get_table_column_statistics_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_table_column_statistics_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_table_column_statistics_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // COL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.col_name = iprot.readString();
                struct.setCol_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_table_column_statistics_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        if (struct.col_name != null) {
          oprot.writeFieldBegin(COL_NAME_FIELD_DESC);
          oprot.writeString(struct.col_name);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_table_column_statistics_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_table_column_statistics_argsTupleScheme getScheme() {
        return new get_table_column_statistics_argsTupleScheme();
      }
    }

    private static class get_table_column_statistics_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_table_column_statistics_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_table_column_statistics_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetCol_name()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetCol_name()) {
          oprot.writeString(struct.col_name);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_table_column_statistics_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.col_name = iprot.readString();
          struct.setCol_nameIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_column_statistics_result implements org.apache.thrift.TBase<get_table_column_statistics_result, get_table_column_statistics_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_table_column_statistics_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_table_column_statistics_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField O4_FIELD_DESC = new org.apache.thrift.protocol.TField("o4", org.apache.thrift.protocol.TType.STRUCT, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_table_column_statistics_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_table_column_statistics_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable ColumnStatistics success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required
    private @org.apache.thrift.annotation.Nullable InvalidInputException o3; // required
    private @org.apache.thrift.annotation.Nullable InvalidObjectException o4; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3"),
      O4((short)4, "o4");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          case 4: // O4
            return O4;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ColumnStatistics.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidInputException.class)));
      tmpMap.put(_Fields.O4, new org.apache.thrift.meta_data.FieldMetaData("o4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidObjectException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_table_column_statistics_result.class, metaDataMap);
    }

    public get_table_column_statistics_result() {
    }

    public get_table_column_statistics_result(
      ColumnStatistics success,
      NoSuchObjectException o1,
      MetaException o2,
      InvalidInputException o3,
      InvalidObjectException o4)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
      this.o4 = o4;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_table_column_statistics_result(get_table_column_statistics_result other) {
      if (other.isSetSuccess()) {
        this.success = new ColumnStatistics(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new InvalidInputException(other.o3);
      }
      if (other.isSetO4()) {
        this.o4 = new InvalidObjectException(other.o4);
      }
    }

    public get_table_column_statistics_result deepCopy() {
      return new get_table_column_statistics_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
      this.o4 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public ColumnStatistics getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable ColumnStatistics success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidInputException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable InvalidInputException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidObjectException getO4() {
      return this.o4;
    }

    public void setO4(@org.apache.thrift.annotation.Nullable InvalidObjectException o4) {
      this.o4 = o4;
    }

    public void unsetO4() {
      this.o4 = null;
    }

    /** Returns true if field o4 is set (has been assigned a value) and false otherwise */
    public boolean isSetO4() {
      return this.o4 != null;
    }

    public void setO4IsSet(boolean value) {
      if (!value) {
        this.o4 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((ColumnStatistics)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((InvalidInputException)value);
        }
        break;

      case O4:
        if (value == null) {
          unsetO4();
        } else {
          setO4((InvalidObjectException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      case O4:
        return getO4();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      case O4:
        return isSetO4();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_table_column_statistics_result)
        return this.equals((get_table_column_statistics_result)that);
      return false;
    }

    public boolean equals(get_table_column_statistics_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      boolean this_present_o4 = true && this.isSetO4();
      boolean that_present_o4 = true && that.isSetO4();
      if (this_present_o4 || that_present_o4) {
        if (!(this_present_o4 && that_present_o4))
          return false;
        if (!this.o4.equals(that.o4))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      hashCode = hashCode * 8191 + ((isSetO4()) ? 131071 : 524287);
      if (isSetO4())
        hashCode = hashCode * 8191 + o4.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_table_column_statistics_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO4(), other.isSetO4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o4, other.o4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_table_column_statistics_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o4:");
      if (this.o4 == null) {
        sb.append("null");
      } else {
        sb.append(this.o4);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_table_column_statistics_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_table_column_statistics_resultStandardScheme getScheme() {
        return new get_table_column_statistics_resultStandardScheme();
      }
    }

    private static class get_table_column_statistics_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_table_column_statistics_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_table_column_statistics_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new ColumnStatistics();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new InvalidInputException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // O4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o4 = new InvalidObjectException();
                struct.o4.read(iprot);
                struct.setO4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_table_column_statistics_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o4 != null) {
          oprot.writeFieldBegin(O4_FIELD_DESC);
          struct.o4.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_table_column_statistics_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_table_column_statistics_resultTupleScheme getScheme() {
        return new get_table_column_statistics_resultTupleScheme();
      }
    }

    private static class get_table_column_statistics_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_table_column_statistics_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_table_column_statistics_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        if (struct.isSetO4()) {
          optionals.set(4);
        }
        oprot.writeBitSet(optionals, 5);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
        if (struct.isSetO4()) {
          struct.o4.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_table_column_statistics_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(5);
        if (incoming.get(0)) {
          struct.success = new ColumnStatistics();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new InvalidInputException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.o4 = new InvalidObjectException();
          struct.o4.read(iprot);
          struct.setO4IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition_column_statistics_args implements org.apache.thrift.TBase<get_partition_column_statistics_args, get_partition_column_statistics_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_partition_column_statistics_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partition_column_statistics_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField PART_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("part_name", org.apache.thrift.protocol.TType.STRING, (short)3);
    private static final org.apache.thrift.protocol.TField COL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("col_name", org.apache.thrift.protocol.TType.STRING, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_partition_column_statistics_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_partition_column_statistics_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String part_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String col_name; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TBL_NAME((short)2, "tbl_name"),
      PART_NAME((short)3, "part_name"),
      COL_NAME((short)4, "col_name");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // PART_NAME
            return PART_NAME;
          case 4: // COL_NAME
            return COL_NAME;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PART_NAME, new org.apache.thrift.meta_data.FieldMetaData("part_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.COL_NAME, new org.apache.thrift.meta_data.FieldMetaData("col_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partition_column_statistics_args.class, metaDataMap);
    }

    public get_partition_column_statistics_args() {
    }

    public get_partition_column_statistics_args(
      java.lang.String db_name,
      java.lang.String tbl_name,
      java.lang.String part_name,
      java.lang.String col_name)
    {
      this();
      this.db_name = db_name;
      this.tbl_name = tbl_name;
      this.part_name = part_name;
      this.col_name = col_name;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_partition_column_statistics_args(get_partition_column_statistics_args other) {
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      if (other.isSetPart_name()) {
        this.part_name = other.part_name;
      }
      if (other.isSetCol_name()) {
        this.col_name = other.col_name;
      }
    }

    public get_partition_column_statistics_args deepCopy() {
      return new get_partition_column_statistics_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.tbl_name = null;
      this.part_name = null;
      this.col_name = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getPart_name() {
      return this.part_name;
    }

    public void setPart_name(@org.apache.thrift.annotation.Nullable java.lang.String part_name) {
      this.part_name = part_name;
    }

    public void unsetPart_name() {
      this.part_name = null;
    }

    /** Returns true if field part_name is set (has been assigned a value) and false otherwise */
    public boolean isSetPart_name() {
      return this.part_name != null;
    }

    public void setPart_nameIsSet(boolean value) {
      if (!value) {
        this.part_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getCol_name() {
      return this.col_name;
    }

    public void setCol_name(@org.apache.thrift.annotation.Nullable java.lang.String col_name) {
      this.col_name = col_name;
    }

    public void unsetCol_name() {
      this.col_name = null;
    }

    /** Returns true if field col_name is set (has been assigned a value) and false otherwise */
    public boolean isSetCol_name() {
      return this.col_name != null;
    }

    public void setCol_nameIsSet(boolean value) {
      if (!value) {
        this.col_name = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case PART_NAME:
        if (value == null) {
          unsetPart_name();
        } else {
          setPart_name((java.lang.String)value);
        }
        break;

      case COL_NAME:
        if (value == null) {
          unsetCol_name();
        } else {
          setCol_name((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TBL_NAME:
        return getTbl_name();

      case PART_NAME:
        return getPart_name();

      case COL_NAME:
        return getCol_name();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TBL_NAME:
        return isSetTbl_name();
      case PART_NAME:
        return isSetPart_name();
      case COL_NAME:
        return isSetCol_name();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_partition_column_statistics_args)
        return this.equals((get_partition_column_statistics_args)that);
      return false;
    }

    public boolean equals(get_partition_column_statistics_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_part_name = true && this.isSetPart_name();
      boolean that_present_part_name = true && that.isSetPart_name();
      if (this_present_part_name || that_present_part_name) {
        if (!(this_present_part_name && that_present_part_name))
          return false;
        if (!this.part_name.equals(that.part_name))
          return false;
      }

      boolean this_present_col_name = true && this.isSetCol_name();
      boolean that_present_col_name = true && that.isSetCol_name();
      if (this_present_col_name || that_present_col_name) {
        if (!(this_present_col_name && that_present_col_name))
          return false;
        if (!this.col_name.equals(that.col_name))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetPart_name()) ? 131071 : 524287);
      if (isSetPart_name())
        hashCode = hashCode * 8191 + part_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetCol_name()) ? 131071 : 524287);
      if (isSetCol_name())
        hashCode = hashCode * 8191 + col_name.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_partition_column_statistics_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetPart_name(), other.isSetPart_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPart_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.part_name, other.part_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetCol_name(), other.isSetCol_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetCol_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.col_name, other.col_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_partition_column_statistics_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("part_name:");
      if (this.part_name == null) {
        sb.append("null");
      } else {
        sb.append(this.part_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("col_name:");
      if (this.col_name == null) {
        sb.append("null");
      } else {
        sb.append(this.col_name);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_partition_column_statistics_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partition_column_statistics_argsStandardScheme getScheme() {
        return new get_partition_column_statistics_argsStandardScheme();
      }
    }

    private static class get_partition_column_statistics_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_partition_column_statistics_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_partition_column_statistics_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // PART_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.part_name = iprot.readString();
                struct.setPart_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // COL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.col_name = iprot.readString();
                struct.setCol_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_partition_column_statistics_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        if (struct.part_name != null) {
          oprot.writeFieldBegin(PART_NAME_FIELD_DESC);
          oprot.writeString(struct.part_name);
          oprot.writeFieldEnd();
        }
        if (struct.col_name != null) {
          oprot.writeFieldBegin(COL_NAME_FIELD_DESC);
          oprot.writeString(struct.col_name);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_partition_column_statistics_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partition_column_statistics_argsTupleScheme getScheme() {
        return new get_partition_column_statistics_argsTupleScheme();
      }
    }

    private static class get_partition_column_statistics_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_partition_column_statistics_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_partition_column_statistics_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetPart_name()) {
          optionals.set(2);
        }
        if (struct.isSetCol_name()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetPart_name()) {
          oprot.writeString(struct.part_name);
        }
        if (struct.isSetCol_name()) {
          oprot.writeString(struct.col_name);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_partition_column_statistics_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.part_name = iprot.readString();
          struct.setPart_nameIsSet(true);
        }
        if (incoming.get(3)) {
          struct.col_name = iprot.readString();
          struct.setCol_nameIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partition_column_statistics_result implements org.apache.thrift.TBase<get_partition_column_statistics_result, get_partition_column_statistics_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_partition_column_statistics_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partition_column_statistics_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField O4_FIELD_DESC = new org.apache.thrift.protocol.TField("o4", org.apache.thrift.protocol.TType.STRUCT, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_partition_column_statistics_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_partition_column_statistics_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable ColumnStatistics success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required
    private @org.apache.thrift.annotation.Nullable InvalidInputException o3; // required
    private @org.apache.thrift.annotation.Nullable InvalidObjectException o4; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3"),
      O4((short)4, "o4");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          case 4: // O4
            return O4;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ColumnStatistics.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidInputException.class)));
      tmpMap.put(_Fields.O4, new org.apache.thrift.meta_data.FieldMetaData("o4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidObjectException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partition_column_statistics_result.class, metaDataMap);
    }

    public get_partition_column_statistics_result() {
    }

    public get_partition_column_statistics_result(
      ColumnStatistics success,
      NoSuchObjectException o1,
      MetaException o2,
      InvalidInputException o3,
      InvalidObjectException o4)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
      this.o4 = o4;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_partition_column_statistics_result(get_partition_column_statistics_result other) {
      if (other.isSetSuccess()) {
        this.success = new ColumnStatistics(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new InvalidInputException(other.o3);
      }
      if (other.isSetO4()) {
        this.o4 = new InvalidObjectException(other.o4);
      }
    }

    public get_partition_column_statistics_result deepCopy() {
      return new get_partition_column_statistics_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
      this.o4 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public ColumnStatistics getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable ColumnStatistics success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidInputException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable InvalidInputException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidObjectException getO4() {
      return this.o4;
    }

    public void setO4(@org.apache.thrift.annotation.Nullable InvalidObjectException o4) {
      this.o4 = o4;
    }

    public void unsetO4() {
      this.o4 = null;
    }

    /** Returns true if field o4 is set (has been assigned a value) and false otherwise */
    public boolean isSetO4() {
      return this.o4 != null;
    }

    public void setO4IsSet(boolean value) {
      if (!value) {
        this.o4 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((ColumnStatistics)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((InvalidInputException)value);
        }
        break;

      case O4:
        if (value == null) {
          unsetO4();
        } else {
          setO4((InvalidObjectException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      case O4:
        return getO4();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      case O4:
        return isSetO4();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_partition_column_statistics_result)
        return this.equals((get_partition_column_statistics_result)that);
      return false;
    }

    public boolean equals(get_partition_column_statistics_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      boolean this_present_o4 = true && this.isSetO4();
      boolean that_present_o4 = true && that.isSetO4();
      if (this_present_o4 || that_present_o4) {
        if (!(this_present_o4 && that_present_o4))
          return false;
        if (!this.o4.equals(that.o4))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      hashCode = hashCode * 8191 + ((isSetO4()) ? 131071 : 524287);
      if (isSetO4())
        hashCode = hashCode * 8191 + o4.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_partition_column_statistics_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO4(), other.isSetO4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o4, other.o4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_partition_column_statistics_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o4:");
      if (this.o4 == null) {
        sb.append("null");
      } else {
        sb.append(this.o4);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_partition_column_statistics_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partition_column_statistics_resultStandardScheme getScheme() {
        return new get_partition_column_statistics_resultStandardScheme();
      }
    }

    private static class get_partition_column_statistics_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_partition_column_statistics_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_partition_column_statistics_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new ColumnStatistics();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new InvalidInputException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // O4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o4 = new InvalidObjectException();
                struct.o4.read(iprot);
                struct.setO4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_partition_column_statistics_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o4 != null) {
          oprot.writeFieldBegin(O4_FIELD_DESC);
          struct.o4.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_partition_column_statistics_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partition_column_statistics_resultTupleScheme getScheme() {
        return new get_partition_column_statistics_resultTupleScheme();
      }
    }

    private static class get_partition_column_statistics_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_partition_column_statistics_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_partition_column_statistics_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        if (struct.isSetO4()) {
          optionals.set(4);
        }
        oprot.writeBitSet(optionals, 5);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
        if (struct.isSetO4()) {
          struct.o4.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_partition_column_statistics_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(5);
        if (incoming.get(0)) {
          struct.success = new ColumnStatistics();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new InvalidInputException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.o4 = new InvalidObjectException();
          struct.o4.read(iprot);
          struct.setO4IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_statistics_req_args implements org.apache.thrift.TBase<get_table_statistics_req_args, get_table_statistics_req_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_table_statistics_req_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_table_statistics_req_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_table_statistics_req_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_table_statistics_req_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable TableStatsRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TableStatsRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_table_statistics_req_args.class, metaDataMap);
    }

    public get_table_statistics_req_args() {
    }

    public get_table_statistics_req_args(
      TableStatsRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_table_statistics_req_args(get_table_statistics_req_args other) {
      if (other.isSetRequest()) {
        this.request = new TableStatsRequest(other.request);
      }
    }

    public get_table_statistics_req_args deepCopy() {
      return new get_table_statistics_req_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    @org.apache.thrift.annotation.Nullable
    public TableStatsRequest getRequest() {
      return this.request;
    }

    public void setRequest(@org.apache.thrift.annotation.Nullable TableStatsRequest request) {
      this.request = request;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((TableStatsRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_table_statistics_req_args)
        return this.equals((get_table_statistics_req_args)that);
      return false;
    }

    public boolean equals(get_table_statistics_req_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRequest()) ? 131071 : 524287);
      if (isSetRequest())
        hashCode = hashCode * 8191 + request.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_table_statistics_req_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRequest(), other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_table_statistics_req_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_table_statistics_req_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_table_statistics_req_argsStandardScheme getScheme() {
        return new get_table_statistics_req_argsStandardScheme();
      }
    }

    private static class get_table_statistics_req_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_table_statistics_req_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_table_statistics_req_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new TableStatsRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_table_statistics_req_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_table_statistics_req_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_table_statistics_req_argsTupleScheme getScheme() {
        return new get_table_statistics_req_argsTupleScheme();
      }
    }

    private static class get_table_statistics_req_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_table_statistics_req_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_table_statistics_req_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_table_statistics_req_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new TableStatsRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_statistics_req_result implements org.apache.thrift.TBase<get_table_statistics_req_result, get_table_statistics_req_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_table_statistics_req_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_table_statistics_req_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_table_statistics_req_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_table_statistics_req_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable TableStatsResult success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TableStatsResult.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_table_statistics_req_result.class, metaDataMap);
    }

    public get_table_statistics_req_result() {
    }

    public get_table_statistics_req_result(
      TableStatsResult success,
      NoSuchObjectException o1,
      MetaException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_table_statistics_req_result(get_table_statistics_req_result other) {
      if (other.isSetSuccess()) {
        this.success = new TableStatsResult(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public get_table_statistics_req_result deepCopy() {
      return new get_table_statistics_req_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public TableStatsResult getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable TableStatsResult success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((TableStatsResult)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_table_statistics_req_result)
        return this.equals((get_table_statistics_req_result)that);
      return false;
    }

    public boolean equals(get_table_statistics_req_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_table_statistics_req_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_table_statistics_req_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_table_statistics_req_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_table_statistics_req_resultStandardScheme getScheme() {
        return new get_table_statistics_req_resultStandardScheme();
      }
    }

    private static class get_table_statistics_req_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_table_statistics_req_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_table_statistics_req_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new TableStatsResult();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_table_statistics_req_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_table_statistics_req_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_table_statistics_req_resultTupleScheme getScheme() {
        return new get_table_statistics_req_resultTupleScheme();
      }
    }

    private static class get_table_statistics_req_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_table_statistics_req_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_table_statistics_req_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_table_statistics_req_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = new TableStatsResult();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_statistics_req_args implements org.apache.thrift.TBase<get_partitions_statistics_req_args, get_partitions_statistics_req_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_partitions_statistics_req_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partitions_statistics_req_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_partitions_statistics_req_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_partitions_statistics_req_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable PartitionsStatsRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, PartitionsStatsRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partitions_statistics_req_args.class, metaDataMap);
    }

    public get_partitions_statistics_req_args() {
    }

    public get_partitions_statistics_req_args(
      PartitionsStatsRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_partitions_statistics_req_args(get_partitions_statistics_req_args other) {
      if (other.isSetRequest()) {
        this.request = new PartitionsStatsRequest(other.request);
      }
    }

    public get_partitions_statistics_req_args deepCopy() {
      return new get_partitions_statistics_req_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    @org.apache.thrift.annotation.Nullable
    public PartitionsStatsRequest getRequest() {
      return this.request;
    }

    public void setRequest(@org.apache.thrift.annotation.Nullable PartitionsStatsRequest request) {
      this.request = request;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((PartitionsStatsRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_partitions_statistics_req_args)
        return this.equals((get_partitions_statistics_req_args)that);
      return false;
    }

    public boolean equals(get_partitions_statistics_req_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRequest()) ? 131071 : 524287);
      if (isSetRequest())
        hashCode = hashCode * 8191 + request.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_partitions_statistics_req_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRequest(), other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_partitions_statistics_req_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_partitions_statistics_req_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_statistics_req_argsStandardScheme getScheme() {
        return new get_partitions_statistics_req_argsStandardScheme();
      }
    }

    private static class get_partitions_statistics_req_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_partitions_statistics_req_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_partitions_statistics_req_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new PartitionsStatsRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_partitions_statistics_req_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_partitions_statistics_req_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_statistics_req_argsTupleScheme getScheme() {
        return new get_partitions_statistics_req_argsTupleScheme();
      }
    }

    private static class get_partitions_statistics_req_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_partitions_statistics_req_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_partitions_statistics_req_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_partitions_statistics_req_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new PartitionsStatsRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_partitions_statistics_req_result implements org.apache.thrift.TBase<get_partitions_statistics_req_result, get_partitions_statistics_req_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_partitions_statistics_req_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_partitions_statistics_req_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_partitions_statistics_req_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_partitions_statistics_req_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable PartitionsStatsResult success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, PartitionsStatsResult.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partitions_statistics_req_result.class, metaDataMap);
    }

    public get_partitions_statistics_req_result() {
    }

    public get_partitions_statistics_req_result(
      PartitionsStatsResult success,
      NoSuchObjectException o1,
      MetaException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_partitions_statistics_req_result(get_partitions_statistics_req_result other) {
      if (other.isSetSuccess()) {
        this.success = new PartitionsStatsResult(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public get_partitions_statistics_req_result deepCopy() {
      return new get_partitions_statistics_req_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public PartitionsStatsResult getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable PartitionsStatsResult success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((PartitionsStatsResult)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_partitions_statistics_req_result)
        return this.equals((get_partitions_statistics_req_result)that);
      return false;
    }

    public boolean equals(get_partitions_statistics_req_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_partitions_statistics_req_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_partitions_statistics_req_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_partitions_statistics_req_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_statistics_req_resultStandardScheme getScheme() {
        return new get_partitions_statistics_req_resultStandardScheme();
      }
    }

    private static class get_partitions_statistics_req_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_partitions_statistics_req_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_partitions_statistics_req_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new PartitionsStatsResult();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_partitions_statistics_req_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_partitions_statistics_req_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_partitions_statistics_req_resultTupleScheme getScheme() {
        return new get_partitions_statistics_req_resultTupleScheme();
      }
    }

    private static class get_partitions_statistics_req_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_partitions_statistics_req_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_partitions_statistics_req_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_partitions_statistics_req_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = new PartitionsStatsResult();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_aggr_stats_for_args implements org.apache.thrift.TBase<get_aggr_stats_for_args, get_aggr_stats_for_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_aggr_stats_for_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_aggr_stats_for_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_aggr_stats_for_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_aggr_stats_for_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable PartitionsStatsRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, PartitionsStatsRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_aggr_stats_for_args.class, metaDataMap);
    }

    public get_aggr_stats_for_args() {
    }

    public get_aggr_stats_for_args(
      PartitionsStatsRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_aggr_stats_for_args(get_aggr_stats_for_args other) {
      if (other.isSetRequest()) {
        this.request = new PartitionsStatsRequest(other.request);
      }
    }

    public get_aggr_stats_for_args deepCopy() {
      return new get_aggr_stats_for_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    @org.apache.thrift.annotation.Nullable
    public PartitionsStatsRequest getRequest() {
      return this.request;
    }

    public void setRequest(@org.apache.thrift.annotation.Nullable PartitionsStatsRequest request) {
      this.request = request;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((PartitionsStatsRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_aggr_stats_for_args)
        return this.equals((get_aggr_stats_for_args)that);
      return false;
    }

    public boolean equals(get_aggr_stats_for_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRequest()) ? 131071 : 524287);
      if (isSetRequest())
        hashCode = hashCode * 8191 + request.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_aggr_stats_for_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRequest(), other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_aggr_stats_for_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_aggr_stats_for_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_aggr_stats_for_argsStandardScheme getScheme() {
        return new get_aggr_stats_for_argsStandardScheme();
      }
    }

    private static class get_aggr_stats_for_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_aggr_stats_for_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_aggr_stats_for_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new PartitionsStatsRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_aggr_stats_for_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_aggr_stats_for_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_aggr_stats_for_argsTupleScheme getScheme() {
        return new get_aggr_stats_for_argsTupleScheme();
      }
    }

    private static class get_aggr_stats_for_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_aggr_stats_for_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_aggr_stats_for_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_aggr_stats_for_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new PartitionsStatsRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_aggr_stats_for_result implements org.apache.thrift.TBase<get_aggr_stats_for_result, get_aggr_stats_for_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_aggr_stats_for_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_aggr_stats_for_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_aggr_stats_for_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_aggr_stats_for_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable AggrStats success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AggrStats.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_aggr_stats_for_result.class, metaDataMap);
    }

    public get_aggr_stats_for_result() {
    }

    public get_aggr_stats_for_result(
      AggrStats success,
      NoSuchObjectException o1,
      MetaException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_aggr_stats_for_result(get_aggr_stats_for_result other) {
      if (other.isSetSuccess()) {
        this.success = new AggrStats(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public get_aggr_stats_for_result deepCopy() {
      return new get_aggr_stats_for_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public AggrStats getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable AggrStats success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((AggrStats)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_aggr_stats_for_result)
        return this.equals((get_aggr_stats_for_result)that);
      return false;
    }

    public boolean equals(get_aggr_stats_for_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_aggr_stats_for_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_aggr_stats_for_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_aggr_stats_for_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_aggr_stats_for_resultStandardScheme getScheme() {
        return new get_aggr_stats_for_resultStandardScheme();
      }
    }

    private static class get_aggr_stats_for_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_aggr_stats_for_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_aggr_stats_for_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new AggrStats();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_aggr_stats_for_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_aggr_stats_for_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_aggr_stats_for_resultTupleScheme getScheme() {
        return new get_aggr_stats_for_resultTupleScheme();
      }
    }

    private static class get_aggr_stats_for_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_aggr_stats_for_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_aggr_stats_for_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_aggr_stats_for_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = new AggrStats();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class set_aggr_stats_for_args implements org.apache.thrift.TBase<set_aggr_stats_for_args, set_aggr_stats_for_args._Fields>, java.io.Serializable, Cloneable, Comparable<set_aggr_stats_for_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("set_aggr_stats_for_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new set_aggr_stats_for_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new set_aggr_stats_for_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable SetPartitionsStatsRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SetPartitionsStatsRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(set_aggr_stats_for_args.class, metaDataMap);
    }

    public set_aggr_stats_for_args() {
    }

    public set_aggr_stats_for_args(
      SetPartitionsStatsRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public set_aggr_stats_for_args(set_aggr_stats_for_args other) {
      if (other.isSetRequest()) {
        this.request = new SetPartitionsStatsRequest(other.request);
      }
    }

    public set_aggr_stats_for_args deepCopy() {
      return new set_aggr_stats_for_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    @org.apache.thrift.annotation.Nullable
    public SetPartitionsStatsRequest getRequest() {
      return this.request;
    }

    public void setRequest(@org.apache.thrift.annotation.Nullable SetPartitionsStatsRequest request) {
      this.request = request;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((SetPartitionsStatsRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof set_aggr_stats_for_args)
        return this.equals((set_aggr_stats_for_args)that);
      return false;
    }

    public boolean equals(set_aggr_stats_for_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRequest()) ? 131071 : 524287);
      if (isSetRequest())
        hashCode = hashCode * 8191 + request.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(set_aggr_stats_for_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRequest(), other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("set_aggr_stats_for_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class set_aggr_stats_for_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public set_aggr_stats_for_argsStandardScheme getScheme() {
        return new set_aggr_stats_for_argsStandardScheme();
      }
    }

    private static class set_aggr_stats_for_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<set_aggr_stats_for_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, set_aggr_stats_for_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new SetPartitionsStatsRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, set_aggr_stats_for_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class set_aggr_stats_for_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public set_aggr_stats_for_argsTupleScheme getScheme() {
        return new set_aggr_stats_for_argsTupleScheme();
      }
    }

    private static class set_aggr_stats_for_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<set_aggr_stats_for_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, set_aggr_stats_for_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, set_aggr_stats_for_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new SetPartitionsStatsRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class set_aggr_stats_for_result implements org.apache.thrift.TBase<set_aggr_stats_for_result, set_aggr_stats_for_result._Fields>, java.io.Serializable, Cloneable, Comparable<set_aggr_stats_for_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("set_aggr_stats_for_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField O4_FIELD_DESC = new org.apache.thrift.protocol.TField("o4", org.apache.thrift.protocol.TType.STRUCT, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new set_aggr_stats_for_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new set_aggr_stats_for_resultTupleSchemeFactory();

    private boolean success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable InvalidObjectException o2; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required
    private @org.apache.thrift.annotation.Nullable InvalidInputException o4; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3"),
      O4((short)4, "o4");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          case 4: // O4
            return O4;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidObjectException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O4, new org.apache.thrift.meta_data.FieldMetaData("o4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidInputException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(set_aggr_stats_for_result.class, metaDataMap);
    }

    public set_aggr_stats_for_result() {
    }

    public set_aggr_stats_for_result(
      boolean success,
      NoSuchObjectException o1,
      InvalidObjectException o2,
      MetaException o3,
      InvalidInputException o4)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
      this.o4 = o4;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public set_aggr_stats_for_result(set_aggr_stats_for_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new InvalidObjectException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
      if (other.isSetO4()) {
        this.o4 = new InvalidInputException(other.o4);
      }
    }

    public set_aggr_stats_for_result deepCopy() {
      return new set_aggr_stats_for_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = false;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
      this.o4 = null;
    }

    public boolean isSuccess() {
      return this.success;
    }

    public void setSuccess(boolean success) {
      this.success = success;
      setSuccessIsSet(true);
    }

    public void unsetSuccess() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable InvalidObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidInputException getO4() {
      return this.o4;
    }

    public void setO4(@org.apache.thrift.annotation.Nullable InvalidInputException o4) {
      this.o4 = o4;
    }

    public void unsetO4() {
      this.o4 = null;
    }

    /** Returns true if field o4 is set (has been assigned a value) and false otherwise */
    public boolean isSetO4() {
      return this.o4 != null;
    }

    public void setO4IsSet(boolean value) {
      if (!value) {
        this.o4 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.lang.Boolean)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((InvalidObjectException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      case O4:
        if (value == null) {
          unsetO4();
        } else {
          setO4((InvalidInputException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return isSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      case O4:
        return getO4();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      case O4:
        return isSetO4();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof set_aggr_stats_for_result)
        return this.equals((set_aggr_stats_for_result)that);
      return false;
    }

    public boolean equals(set_aggr_stats_for_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      boolean this_present_o4 = true && this.isSetO4();
      boolean that_present_o4 = true && that.isSetO4();
      if (this_present_o4 || that_present_o4) {
        if (!(this_present_o4 && that_present_o4))
          return false;
        if (!this.o4.equals(that.o4))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      hashCode = hashCode * 8191 + ((isSetO4()) ? 131071 : 524287);
      if (isSetO4())
        hashCode = hashCode * 8191 + o4.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(set_aggr_stats_for_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO4(), other.isSetO4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o4, other.o4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("set_aggr_stats_for_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o4:");
      if (this.o4 == null) {
        sb.append("null");
      } else {
        sb.append(this.o4);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class set_aggr_stats_for_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public set_aggr_stats_for_resultStandardScheme getScheme() {
        return new set_aggr_stats_for_resultStandardScheme();
      }
    }

    private static class set_aggr_stats_for_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<set_aggr_stats_for_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, set_aggr_stats_for_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.success = iprot.readBool();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new InvalidObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // O4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o4 = new InvalidInputException();
                struct.o4.read(iprot);
                struct.setO4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, set_aggr_stats_for_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeBool(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o4 != null) {
          oprot.writeFieldBegin(O4_FIELD_DESC);
          struct.o4.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class set_aggr_stats_for_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public set_aggr_stats_for_resultTupleScheme getScheme() {
        return new set_aggr_stats_for_resultTupleScheme();
      }
    }

    private static class set_aggr_stats_for_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<set_aggr_stats_for_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, set_aggr_stats_for_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        if (struct.isSetO4()) {
          optionals.set(4);
        }
        oprot.writeBitSet(optionals, 5);
        if (struct.isSetSuccess()) {
          oprot.writeBool(struct.success);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
        if (struct.isSetO4()) {
          struct.o4.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, set_aggr_stats_for_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(5);
        if (incoming.get(0)) {
          struct.success = iprot.readBool();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new InvalidObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.o4 = new InvalidInputException();
          struct.o4.read(iprot);
          struct.setO4IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class delete_partition_column_statistics_args implements org.apache.thrift.TBase<delete_partition_column_statistics_args, delete_partition_column_statistics_args._Fields>, java.io.Serializable, Cloneable, Comparable<delete_partition_column_statistics_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("delete_partition_column_statistics_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField PART_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("part_name", org.apache.thrift.protocol.TType.STRING, (short)3);
    private static final org.apache.thrift.protocol.TField COL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("col_name", org.apache.thrift.protocol.TType.STRING, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new delete_partition_column_statistics_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new delete_partition_column_statistics_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String part_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String col_name; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TBL_NAME((short)2, "tbl_name"),
      PART_NAME((short)3, "part_name"),
      COL_NAME((short)4, "col_name");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // PART_NAME
            return PART_NAME;
          case 4: // COL_NAME
            return COL_NAME;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PART_NAME, new org.apache.thrift.meta_data.FieldMetaData("part_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.COL_NAME, new org.apache.thrift.meta_data.FieldMetaData("col_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(delete_partition_column_statistics_args.class, metaDataMap);
    }

    public delete_partition_column_statistics_args() {
    }

    public delete_partition_column_statistics_args(
      java.lang.String db_name,
      java.lang.String tbl_name,
      java.lang.String part_name,
      java.lang.String col_name)
    {
      this();
      this.db_name = db_name;
      this.tbl_name = tbl_name;
      this.part_name = part_name;
      this.col_name = col_name;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public delete_partition_column_statistics_args(delete_partition_column_statistics_args other) {
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      if (other.isSetPart_name()) {
        this.part_name = other.part_name;
      }
      if (other.isSetCol_name()) {
        this.col_name = other.col_name;
      }
    }

    public delete_partition_column_statistics_args deepCopy() {
      return new delete_partition_column_statistics_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.tbl_name = null;
      this.part_name = null;
      this.col_name = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getPart_name() {
      return this.part_name;
    }

    public void setPart_name(@org.apache.thrift.annotation.Nullable java.lang.String part_name) {
      this.part_name = part_name;
    }

    public void unsetPart_name() {
      this.part_name = null;
    }

    /** Returns true if field part_name is set (has been assigned a value) and false otherwise */
    public boolean isSetPart_name() {
      return this.part_name != null;
    }

    public void setPart_nameIsSet(boolean value) {
      if (!value) {
        this.part_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getCol_name() {
      return this.col_name;
    }

    public void setCol_name(@org.apache.thrift.annotation.Nullable java.lang.String col_name) {
      this.col_name = col_name;
    }

    public void unsetCol_name() {
      this.col_name = null;
    }

    /** Returns true if field col_name is set (has been assigned a value) and false otherwise */
    public boolean isSetCol_name() {
      return this.col_name != null;
    }

    public void setCol_nameIsSet(boolean value) {
      if (!value) {
        this.col_name = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case PART_NAME:
        if (value == null) {
          unsetPart_name();
        } else {
          setPart_name((java.lang.String)value);
        }
        break;

      case COL_NAME:
        if (value == null) {
          unsetCol_name();
        } else {
          setCol_name((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TBL_NAME:
        return getTbl_name();

      case PART_NAME:
        return getPart_name();

      case COL_NAME:
        return getCol_name();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TBL_NAME:
        return isSetTbl_name();
      case PART_NAME:
        return isSetPart_name();
      case COL_NAME:
        return isSetCol_name();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof delete_partition_column_statistics_args)
        return this.equals((delete_partition_column_statistics_args)that);
      return false;
    }

    public boolean equals(delete_partition_column_statistics_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_part_name = true && this.isSetPart_name();
      boolean that_present_part_name = true && that.isSetPart_name();
      if (this_present_part_name || that_present_part_name) {
        if (!(this_present_part_name && that_present_part_name))
          return false;
        if (!this.part_name.equals(that.part_name))
          return false;
      }

      boolean this_present_col_name = true && this.isSetCol_name();
      boolean that_present_col_name = true && that.isSetCol_name();
      if (this_present_col_name || that_present_col_name) {
        if (!(this_present_col_name && that_present_col_name))
          return false;
        if (!this.col_name.equals(that.col_name))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetPart_name()) ? 131071 : 524287);
      if (isSetPart_name())
        hashCode = hashCode * 8191 + part_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetCol_name()) ? 131071 : 524287);
      if (isSetCol_name())
        hashCode = hashCode * 8191 + col_name.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(delete_partition_column_statistics_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetPart_name(), other.isSetPart_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPart_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.part_name, other.part_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetCol_name(), other.isSetCol_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetCol_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.col_name, other.col_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("delete_partition_column_statistics_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("part_name:");
      if (this.part_name == null) {
        sb.append("null");
      } else {
        sb.append(this.part_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("col_name:");
      if (this.col_name == null) {
        sb.append("null");
      } else {
        sb.append(this.col_name);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class delete_partition_column_statistics_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public delete_partition_column_statistics_argsStandardScheme getScheme() {
        return new delete_partition_column_statistics_argsStandardScheme();
      }
    }

    private static class delete_partition_column_statistics_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<delete_partition_column_statistics_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, delete_partition_column_statistics_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // PART_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.part_name = iprot.readString();
                struct.setPart_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // COL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.col_name = iprot.readString();
                struct.setCol_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, delete_partition_column_statistics_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        if (struct.part_name != null) {
          oprot.writeFieldBegin(PART_NAME_FIELD_DESC);
          oprot.writeString(struct.part_name);
          oprot.writeFieldEnd();
        }
        if (struct.col_name != null) {
          oprot.writeFieldBegin(COL_NAME_FIELD_DESC);
          oprot.writeString(struct.col_name);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class delete_partition_column_statistics_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public delete_partition_column_statistics_argsTupleScheme getScheme() {
        return new delete_partition_column_statistics_argsTupleScheme();
      }
    }

    private static class delete_partition_column_statistics_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<delete_partition_column_statistics_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, delete_partition_column_statistics_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetPart_name()) {
          optionals.set(2);
        }
        if (struct.isSetCol_name()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetPart_name()) {
          oprot.writeString(struct.part_name);
        }
        if (struct.isSetCol_name()) {
          oprot.writeString(struct.col_name);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, delete_partition_column_statistics_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.part_name = iprot.readString();
          struct.setPart_nameIsSet(true);
        }
        if (incoming.get(3)) {
          struct.col_name = iprot.readString();
          struct.setCol_nameIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class delete_partition_column_statistics_result implements org.apache.thrift.TBase<delete_partition_column_statistics_result, delete_partition_column_statistics_result._Fields>, java.io.Serializable, Cloneable, Comparable<delete_partition_column_statistics_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("delete_partition_column_statistics_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField O4_FIELD_DESC = new org.apache.thrift.protocol.TField("o4", org.apache.thrift.protocol.TType.STRUCT, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new delete_partition_column_statistics_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new delete_partition_column_statistics_resultTupleSchemeFactory();

    private boolean success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required
    private @org.apache.thrift.annotation.Nullable InvalidObjectException o3; // required
    private @org.apache.thrift.annotation.Nullable InvalidInputException o4; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3"),
      O4((short)4, "o4");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          case 4: // O4
            return O4;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidObjectException.class)));
      tmpMap.put(_Fields.O4, new org.apache.thrift.meta_data.FieldMetaData("o4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidInputException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(delete_partition_column_statistics_result.class, metaDataMap);
    }

    public delete_partition_column_statistics_result() {
    }

    public delete_partition_column_statistics_result(
      boolean success,
      NoSuchObjectException o1,
      MetaException o2,
      InvalidObjectException o3,
      InvalidInputException o4)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
      this.o4 = o4;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public delete_partition_column_statistics_result(delete_partition_column_statistics_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new InvalidObjectException(other.o3);
      }
      if (other.isSetO4()) {
        this.o4 = new InvalidInputException(other.o4);
      }
    }

    public delete_partition_column_statistics_result deepCopy() {
      return new delete_partition_column_statistics_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = false;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
      this.o4 = null;
    }

    public boolean isSuccess() {
      return this.success;
    }

    public void setSuccess(boolean success) {
      this.success = success;
      setSuccessIsSet(true);
    }

    public void unsetSuccess() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidObjectException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable InvalidObjectException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidInputException getO4() {
      return this.o4;
    }

    public void setO4(@org.apache.thrift.annotation.Nullable InvalidInputException o4) {
      this.o4 = o4;
    }

    public void unsetO4() {
      this.o4 = null;
    }

    /** Returns true if field o4 is set (has been assigned a value) and false otherwise */
    public boolean isSetO4() {
      return this.o4 != null;
    }

    public void setO4IsSet(boolean value) {
      if (!value) {
        this.o4 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.lang.Boolean)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((InvalidObjectException)value);
        }
        break;

      case O4:
        if (value == null) {
          unsetO4();
        } else {
          setO4((InvalidInputException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return isSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      case O4:
        return getO4();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      case O4:
        return isSetO4();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof delete_partition_column_statistics_result)
        return this.equals((delete_partition_column_statistics_result)that);
      return false;
    }

    public boolean equals(delete_partition_column_statistics_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      boolean this_present_o4 = true && this.isSetO4();
      boolean that_present_o4 = true && that.isSetO4();
      if (this_present_o4 || that_present_o4) {
        if (!(this_present_o4 && that_present_o4))
          return false;
        if (!this.o4.equals(that.o4))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      hashCode = hashCode * 8191 + ((isSetO4()) ? 131071 : 524287);
      if (isSetO4())
        hashCode = hashCode * 8191 + o4.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(delete_partition_column_statistics_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO4(), other.isSetO4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o4, other.o4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("delete_partition_column_statistics_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o4:");
      if (this.o4 == null) {
        sb.append("null");
      } else {
        sb.append(this.o4);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class delete_partition_column_statistics_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public delete_partition_column_statistics_resultStandardScheme getScheme() {
        return new delete_partition_column_statistics_resultStandardScheme();
      }
    }

    private static class delete_partition_column_statistics_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<delete_partition_column_statistics_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, delete_partition_column_statistics_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.success = iprot.readBool();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new InvalidObjectException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // O4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o4 = new InvalidInputException();
                struct.o4.read(iprot);
                struct.setO4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, delete_partition_column_statistics_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeBool(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o4 != null) {
          oprot.writeFieldBegin(O4_FIELD_DESC);
          struct.o4.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class delete_partition_column_statistics_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public delete_partition_column_statistics_resultTupleScheme getScheme() {
        return new delete_partition_column_statistics_resultTupleScheme();
      }
    }

    private static class delete_partition_column_statistics_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<delete_partition_column_statistics_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, delete_partition_column_statistics_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        if (struct.isSetO4()) {
          optionals.set(4);
        }
        oprot.writeBitSet(optionals, 5);
        if (struct.isSetSuccess()) {
          oprot.writeBool(struct.success);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
        if (struct.isSetO4()) {
          struct.o4.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, delete_partition_column_statistics_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(5);
        if (incoming.get(0)) {
          struct.success = iprot.readBool();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new InvalidObjectException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.o4 = new InvalidInputException();
          struct.o4.read(iprot);
          struct.setO4IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class delete_table_column_statistics_args implements org.apache.thrift.TBase<delete_table_column_statistics_args, delete_table_column_statistics_args._Fields>, java.io.Serializable, Cloneable, Comparable<delete_table_column_statistics_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("delete_table_column_statistics_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("db_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField COL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("col_name", org.apache.thrift.protocol.TType.STRING, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new delete_table_column_statistics_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new delete_table_column_statistics_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String db_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String col_name; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "db_name"),
      TBL_NAME((short)2, "tbl_name"),
      COL_NAME((short)3, "col_name");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TBL_NAME
            return TBL_NAME;
          case 3: // COL_NAME
            return COL_NAME;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.COL_NAME, new org.apache.thrift.meta_data.FieldMetaData("col_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(delete_table_column_statistics_args.class, metaDataMap);
    }

    public delete_table_column_statistics_args() {
    }

    public delete_table_column_statistics_args(
      java.lang.String db_name,
      java.lang.String tbl_name,
      java.lang.String col_name)
    {
      this();
      this.db_name = db_name;
      this.tbl_name = tbl_name;
      this.col_name = col_name;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public delete_table_column_statistics_args(delete_table_column_statistics_args other) {
      if (other.isSetDb_name()) {
        this.db_name = other.db_name;
      }
      if (other.isSetTbl_name()) {
        this.tbl_name = other.tbl_name;
      }
      if (other.isSetCol_name()) {
        this.col_name = other.col_name;
      }
    }

    public delete_table_column_statistics_args deepCopy() {
      return new delete_table_column_statistics_args(this);
    }

    @Override
    public void clear() {
      this.db_name = null;
      this.tbl_name = null;
      this.col_name = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDb_name() {
      return this.db_name;
    }

    public void setDb_name(@org.apache.thrift.annotation.Nullable java.lang.String db_name) {
      this.db_name = db_name;
    }

    public void unsetDb_name() {
      this.db_name = null;
    }

    /** Returns true if field db_name is set (has been assigned a value) and false otherwise */
    public boolean isSetDb_name() {
      return this.db_name != null;
    }

    public void setDb_nameIsSet(boolean value) {
      if (!value) {
        this.db_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTbl_name() {
      return this.tbl_name;
    }

    public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) {
      this.tbl_name = tbl_name;
    }

    public void unsetTbl_name() {
      this.tbl_name = null;
    }

    /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */
    public boolean isSetTbl_name() {
      return this.tbl_name != null;
    }

    public void setTbl_nameIsSet(boolean value) {
      if (!value) {
        this.tbl_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getCol_name() {
      return this.col_name;
    }

    public void setCol_name(@org.apache.thrift.annotation.Nullable java.lang.String col_name) {
      this.col_name = col_name;
    }

    public void unsetCol_name() {
      this.col_name = null;
    }

    /** Returns true if field col_name is set (has been assigned a value) and false otherwise */
    public boolean isSetCol_name() {
      return this.col_name != null;
    }

    public void setCol_nameIsSet(boolean value) {
      if (!value) {
        this.col_name = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDb_name();
        } else {
          setDb_name((java.lang.String)value);
        }
        break;

      case TBL_NAME:
        if (value == null) {
          unsetTbl_name();
        } else {
          setTbl_name((java.lang.String)value);
        }
        break;

      case COL_NAME:
        if (value == null) {
          unsetCol_name();
        } else {
          setCol_name((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDb_name();

      case TBL_NAME:
        return getTbl_name();

      case COL_NAME:
        return getCol_name();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDb_name();
      case TBL_NAME:
        return isSetTbl_name();
      case COL_NAME:
        return isSetCol_name();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof delete_table_column_statistics_args)
        return this.equals((delete_table_column_statistics_args)that);
      return false;
    }

    public boolean equals(delete_table_column_statistics_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_db_name = true && this.isSetDb_name();
      boolean that_present_db_name = true && that.isSetDb_name();
      if (this_present_db_name || that_present_db_name) {
        if (!(this_present_db_name && that_present_db_name))
          return false;
        if (!this.db_name.equals(that.db_name))
          return false;
      }

      boolean this_present_tbl_name = true && this.isSetTbl_name();
      boolean that_present_tbl_name = true && that.isSetTbl_name();
      if (this_present_tbl_name || that_present_tbl_name) {
        if (!(this_present_tbl_name && that_present_tbl_name))
          return false;
        if (!this.tbl_name.equals(that.tbl_name))
          return false;
      }

      boolean this_present_col_name = true && this.isSetCol_name();
      boolean that_present_col_name = true && that.isSetCol_name();
      if (this_present_col_name || that_present_col_name) {
        if (!(this_present_col_name && that_present_col_name))
          return false;
        if (!this.col_name.equals(that.col_name))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDb_name()) ? 131071 : 524287);
      if (isSetDb_name())
        hashCode = hashCode * 8191 + db_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287);
      if (isSetTbl_name())
        hashCode = hashCode * 8191 + tbl_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetCol_name()) ? 131071 : 524287);
      if (isSetCol_name())
        hashCode = hashCode * 8191 + col_name.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(delete_table_column_statistics_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDb_name(), other.isSetDb_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDb_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db_name, other.db_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTbl_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetCol_name(), other.isSetCol_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetCol_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.col_name, other.col_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("delete_table_column_statistics_args(");
      boolean first = true;

      sb.append("db_name:");
      if (this.db_name == null) {
        sb.append("null");
      } else {
        sb.append(this.db_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tbl_name:");
      if (this.tbl_name == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("col_name:");
      if (this.col_name == null) {
        sb.append("null");
      } else {
        sb.append(this.col_name);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class delete_table_column_statistics_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public delete_table_column_statistics_argsStandardScheme getScheme() {
        return new delete_table_column_statistics_argsStandardScheme();
      }
    }

    private static class delete_table_column_statistics_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<delete_table_column_statistics_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, delete_table_column_statistics_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.db_name = iprot.readString();
                struct.setDb_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TBL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tbl_name = iprot.readString();
                struct.setTbl_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // COL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.col_name = iprot.readString();
                struct.setCol_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, delete_table_column_statistics_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.db_name != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.db_name);
          oprot.writeFieldEnd();
        }
        if (struct.tbl_name != null) {
          oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
          oprot.writeString(struct.tbl_name);
          oprot.writeFieldEnd();
        }
        if (struct.col_name != null) {
          oprot.writeFieldBegin(COL_NAME_FIELD_DESC);
          oprot.writeString(struct.col_name);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class delete_table_column_statistics_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public delete_table_column_statistics_argsTupleScheme getScheme() {
        return new delete_table_column_statistics_argsTupleScheme();
      }
    }

    private static class delete_table_column_statistics_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<delete_table_column_statistics_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, delete_table_column_statistics_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDb_name()) {
          optionals.set(0);
        }
        if (struct.isSetTbl_name()) {
          optionals.set(1);
        }
        if (struct.isSetCol_name()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetDb_name()) {
          oprot.writeString(struct.db_name);
        }
        if (struct.isSetTbl_name()) {
          oprot.writeString(struct.tbl_name);
        }
        if (struct.isSetCol_name()) {
          oprot.writeString(struct.col_name);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, delete_table_column_statistics_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.db_name = iprot.readString();
          struct.setDb_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tbl_name = iprot.readString();
          struct.setTbl_nameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.col_name = iprot.readString();
          struct.setCol_nameIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class delete_table_column_statistics_result implements org.apache.thrift.TBase<delete_table_column_statistics_result, delete_table_column_statistics_result._Fields>, java.io.Serializable, Cloneable, Comparable<delete_table_column_statistics_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("delete_table_column_statistics_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField O4_FIELD_DESC = new org.apache.thrift.protocol.TField("o4", org.apache.thrift.protocol.TType.STRUCT, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new delete_table_column_statistics_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new delete_table_column_statistics_resultTupleSchemeFactory();

    private boolean success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required
    private @org.apache.thrift.annotation.Nullable InvalidObjectException o3; // required
    private @org.apache.thrift.annotation.Nullable InvalidInputException o4; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3"),
      O4((short)4, "o4");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          case 4: // O4
            return O4;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidObjectException.class)));
      tmpMap.put(_Fields.O4, new org.apache.thrift.meta_data.FieldMetaData("o4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidInputException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(delete_table_column_statistics_result.class, metaDataMap);
    }

    public delete_table_column_statistics_result() {
    }

    public delete_table_column_statistics_result(
      boolean success,
      NoSuchObjectException o1,
      MetaException o2,
      InvalidObjectException o3,
      InvalidInputException o4)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
      this.o4 = o4;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public delete_table_column_statistics_result(delete_table_column_statistics_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new InvalidObjectException(other.o3);
      }
      if (other.isSetO4()) {
        this.o4 = new InvalidInputException(other.o4);
      }
    }

    public delete_table_column_statistics_result deepCopy() {
      return new delete_table_column_statistics_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = false;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
      this.o4 = null;
    }

    public boolean isSuccess() {
      return this.success;
    }

    public void setSuccess(boolean success) {
      this.success = success;
      setSuccessIsSet(true);
    }

    public void unsetSuccess() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidObjectException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable InvalidObjectException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidInputException getO4() {
      return this.o4;
    }

    public void setO4(@org.apache.thrift.annotation.Nullable InvalidInputException o4) {
      this.o4 = o4;
    }

    public void unsetO4() {
      this.o4 = null;
    }

    /** Returns true if field o4 is set (has been assigned a value) and false otherwise */
    public boolean isSetO4() {
      return this.o4 != null;
    }

    public void setO4IsSet(boolean value) {
      if (!value) {
        this.o4 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.lang.Boolean)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((InvalidObjectException)value);
        }
        break;

      case O4:
        if (value == null) {
          unsetO4();
        } else {
          setO4((InvalidInputException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return isSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      case O4:
        return getO4();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      case O4:
        return isSetO4();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof delete_table_column_statistics_result)
        return this.equals((delete_table_column_statistics_result)that);
      return false;
    }

    public boolean equals(delete_table_column_statistics_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      boolean this_present_o4 = true && this.isSetO4();
      boolean that_present_o4 = true && that.isSetO4();
      if (this_present_o4 || that_present_o4) {
        if (!(this_present_o4 && that_present_o4))
          return false;
        if (!this.o4.equals(that.o4))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      hashCode = hashCode * 8191 + ((isSetO4()) ? 131071 : 524287);
      if (isSetO4())
        hashCode = hashCode * 8191 + o4.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(delete_table_column_statistics_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO4(), other.isSetO4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o4, other.o4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("delete_table_column_statistics_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o4:");
      if (this.o4 == null) {
        sb.append("null");
      } else {
        sb.append(this.o4);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class delete_table_column_statistics_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public delete_table_column_statistics_resultStandardScheme getScheme() {
        return new delete_table_column_statistics_resultStandardScheme();
      }
    }

    private static class delete_table_column_statistics_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<delete_table_column_statistics_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, delete_table_column_statistics_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.success = iprot.readBool();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new InvalidObjectException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // O4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o4 = new InvalidInputException();
                struct.o4.read(iprot);
                struct.setO4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, delete_table_column_statistics_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeBool(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o4 != null) {
          oprot.writeFieldBegin(O4_FIELD_DESC);
          struct.o4.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class delete_table_column_statistics_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public delete_table_column_statistics_resultTupleScheme getScheme() {
        return new delete_table_column_statistics_resultTupleScheme();
      }
    }

    private static class delete_table_column_statistics_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<delete_table_column_statistics_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, delete_table_column_statistics_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        if (struct.isSetO4()) {
          optionals.set(4);
        }
        oprot.writeBitSet(optionals, 5);
        if (struct.isSetSuccess()) {
          oprot.writeBool(struct.success);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
        if (struct.isSetO4()) {
          struct.o4.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, delete_table_column_statistics_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(5);
        if (incoming.get(0)) {
          struct.success = iprot.readBool();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new InvalidObjectException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.o4 = new InvalidInputException();
          struct.o4.read(iprot);
          struct.setO4IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_function_args implements org.apache.thrift.TBase<create_function_args, create_function_args._Fields>, java.io.Serializable, Cloneable, Comparable<create_function_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("create_function_args");

    private static final org.apache.thrift.protocol.TField FUNC_FIELD_DESC = new org.apache.thrift.protocol.TField("func", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new create_function_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new create_function_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable Function func; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      FUNC((short)1, "func");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // FUNC
            return FUNC;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.FUNC, new org.apache.thrift.meta_data.FieldMetaData("func", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Function.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(create_function_args.class, metaDataMap);
    }

    public create_function_args() {
    }

    public create_function_args(
      Function func)
    {
      this();
      this.func = func;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public create_function_args(create_function_args other) {
      if (other.isSetFunc()) {
        this.func = new Function(other.func);
      }
    }

    public create_function_args deepCopy() {
      return new create_function_args(this);
    }

    @Override
    public void clear() {
      this.func = null;
    }

    @org.apache.thrift.annotation.Nullable
    public Function getFunc() {
      return this.func;
    }

    public void setFunc(@org.apache.thrift.annotation.Nullable Function func) {
      this.func = func;
    }

    public void unsetFunc() {
      this.func = null;
    }

    /** Returns true if field func is set (has been assigned a value) and false otherwise */
    public boolean isSetFunc() {
      return this.func != null;
    }

    public void setFuncIsSet(boolean value) {
      if (!value) {
        this.func = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case FUNC:
        if (value == null) {
          unsetFunc();
        } else {
          setFunc((Function)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case FUNC:
        return getFunc();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case FUNC:
        return isSetFunc();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof create_function_args)
        return this.equals((create_function_args)that);
      return false;
    }

    public boolean equals(create_function_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_func = true && this.isSetFunc();
      boolean that_present_func = true && that.isSetFunc();
      if (this_present_func || that_present_func) {
        if (!(this_present_func && that_present_func))
          return false;
        if (!this.func.equals(that.func))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetFunc()) ? 131071 : 524287);
      if (isSetFunc())
        hashCode = hashCode * 8191 + func.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(create_function_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetFunc(), other.isSetFunc());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetFunc()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.func, other.func);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("create_function_args(");
      boolean first = true;

      sb.append("func:");
      if (this.func == null) {
        sb.append("null");
      } else {
        sb.append(this.func);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (func != null) {
        func.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class create_function_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_function_argsStandardScheme getScheme() {
        return new create_function_argsStandardScheme();
      }
    }

    private static class create_function_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<create_function_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, create_function_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // FUNC
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.func = new Function();
                struct.func.read(iprot);
                struct.setFuncIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, create_function_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.func != null) {
          oprot.writeFieldBegin(FUNC_FIELD_DESC);
          struct.func.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class create_function_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_function_argsTupleScheme getScheme() {
        return new create_function_argsTupleScheme();
      }
    }

    private static class create_function_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<create_function_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, create_function_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetFunc()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetFunc()) {
          struct.func.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, create_function_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.func = new Function();
          struct.func.read(iprot);
          struct.setFuncIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_function_result implements org.apache.thrift.TBase<create_function_result, create_function_result._Fields>, java.io.Serializable, Cloneable, Comparable<create_function_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("create_function_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField O4_FIELD_DESC = new org.apache.thrift.protocol.TField("o4", org.apache.thrift.protocol.TType.STRUCT, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new create_function_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new create_function_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable AlreadyExistsException o1; // required
    private @org.apache.thrift.annotation.Nullable InvalidObjectException o2; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o4; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3"),
      O4((short)4, "o4");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          case 4: // O4
            return O4;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AlreadyExistsException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidObjectException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O4, new org.apache.thrift.meta_data.FieldMetaData("o4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(create_function_result.class, metaDataMap);
    }

    public create_function_result() {
    }

    public create_function_result(
      AlreadyExistsException o1,
      InvalidObjectException o2,
      MetaException o3,
      NoSuchObjectException o4)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
      this.o4 = o4;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public create_function_result(create_function_result other) {
      if (other.isSetO1()) {
        this.o1 = new AlreadyExistsException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new InvalidObjectException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
      if (other.isSetO4()) {
        this.o4 = new NoSuchObjectException(other.o4);
      }
    }

    public create_function_result deepCopy() {
      return new create_function_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
      this.o4 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public AlreadyExistsException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable AlreadyExistsException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable InvalidObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO4() {
      return this.o4;
    }

    public void setO4(@org.apache.thrift.annotation.Nullable NoSuchObjectException o4) {
      this.o4 = o4;
    }

    public void unsetO4() {
      this.o4 = null;
    }

    /** Returns true if field o4 is set (has been assigned a value) and false otherwise */
    public boolean isSetO4() {
      return this.o4 != null;
    }

    public void setO4IsSet(boolean value) {
      if (!value) {
        this.o4 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((AlreadyExistsException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((InvalidObjectException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      case O4:
        if (value == null) {
          unsetO4();
        } else {
          setO4((NoSuchObjectException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      case O4:
        return getO4();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      case O4:
        return isSetO4();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof create_function_result)
        return this.equals((create_function_result)that);
      return false;
    }

    public boolean equals(create_function_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      boolean this_present_o4 = true && this.isSetO4();
      boolean that_present_o4 = true && that.isSetO4();
      if (this_present_o4 || that_present_o4) {
        if (!(this_present_o4 && that_present_o4))
          return false;
        if (!this.o4.equals(that.o4))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      hashCode = hashCode * 8191 + ((isSetO4()) ? 131071 : 524287);
      if (isSetO4())
        hashCode = hashCode * 8191 + o4.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(create_function_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO4(), other.isSetO4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o4, other.o4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("create_function_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o4:");
      if (this.o4 == null) {
        sb.append("null");
      } else {
        sb.append(this.o4);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class create_function_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_function_resultStandardScheme getScheme() {
        return new create_function_resultStandardScheme();
      }
    }

    private static class create_function_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<create_function_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, create_function_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new AlreadyExistsException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new InvalidObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // O4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o4 = new NoSuchObjectException();
                struct.o4.read(iprot);
                struct.setO4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, create_function_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o4 != null) {
          oprot.writeFieldBegin(O4_FIELD_DESC);
          struct.o4.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class create_function_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_function_resultTupleScheme getScheme() {
        return new create_function_resultTupleScheme();
      }
    }

    private static class create_function_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<create_function_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, create_function_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        if (struct.isSetO3()) {
          optionals.set(2);
        }
        if (struct.isSetO4()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
        if (struct.isSetO4()) {
          struct.o4.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, create_function_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.o1 = new AlreadyExistsException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new InvalidObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o4 = new NoSuchObjectException();
          struct.o4.read(iprot);
          struct.setO4IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_function_args implements org.apache.thrift.TBase<drop_function_args, drop_function_args._Fields>, java.io.Serializable, Cloneable, Comparable<drop_function_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_function_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("dbName", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField FUNC_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("funcName", org.apache.thrift.protocol.TType.STRING, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_function_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_function_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String dbName; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String funcName; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "dbName"),
      FUNC_NAME((short)2, "funcName");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // FUNC_NAME
            return FUNC_NAME;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("dbName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.FUNC_NAME, new org.apache.thrift.meta_data.FieldMetaData("funcName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_function_args.class, metaDataMap);
    }

    public drop_function_args() {
    }

    public drop_function_args(
      java.lang.String dbName,
      java.lang.String funcName)
    {
      this();
      this.dbName = dbName;
      this.funcName = funcName;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_function_args(drop_function_args other) {
      if (other.isSetDbName()) {
        this.dbName = other.dbName;
      }
      if (other.isSetFuncName()) {
        this.funcName = other.funcName;
      }
    }

    public drop_function_args deepCopy() {
      return new drop_function_args(this);
    }

    @Override
    public void clear() {
      this.dbName = null;
      this.funcName = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDbName() {
      return this.dbName;
    }

    public void setDbName(@org.apache.thrift.annotation.Nullable java.lang.String dbName) {
      this.dbName = dbName;
    }

    public void unsetDbName() {
      this.dbName = null;
    }

    /** Returns true if field dbName is set (has been assigned a value) and false otherwise */
    public boolean isSetDbName() {
      return this.dbName != null;
    }

    public void setDbNameIsSet(boolean value) {
      if (!value) {
        this.dbName = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getFuncName() {
      return this.funcName;
    }

    public void setFuncName(@org.apache.thrift.annotation.Nullable java.lang.String funcName) {
      this.funcName = funcName;
    }

    public void unsetFuncName() {
      this.funcName = null;
    }

    /** Returns true if field funcName is set (has been assigned a value) and false otherwise */
    public boolean isSetFuncName() {
      return this.funcName != null;
    }

    public void setFuncNameIsSet(boolean value) {
      if (!value) {
        this.funcName = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDbName();
        } else {
          setDbName((java.lang.String)value);
        }
        break;

      case FUNC_NAME:
        if (value == null) {
          unsetFuncName();
        } else {
          setFuncName((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDbName();

      case FUNC_NAME:
        return getFuncName();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDbName();
      case FUNC_NAME:
        return isSetFuncName();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_function_args)
        return this.equals((drop_function_args)that);
      return false;
    }

    public boolean equals(drop_function_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_dbName = true && this.isSetDbName();
      boolean that_present_dbName = true && that.isSetDbName();
      if (this_present_dbName || that_present_dbName) {
        if (!(this_present_dbName && that_present_dbName))
          return false;
        if (!this.dbName.equals(that.dbName))
          return false;
      }

      boolean this_present_funcName = true && this.isSetFuncName();
      boolean that_present_funcName = true && that.isSetFuncName();
      if (this_present_funcName || that_present_funcName) {
        if (!(this_present_funcName && that_present_funcName))
          return false;
        if (!this.funcName.equals(that.funcName))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDbName()) ? 131071 : 524287);
      if (isSetDbName())
        hashCode = hashCode * 8191 + dbName.hashCode();

      hashCode = hashCode * 8191 + ((isSetFuncName()) ? 131071 : 524287);
      if (isSetFuncName())
        hashCode = hashCode * 8191 + funcName.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(drop_function_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDbName(), other.isSetDbName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDbName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dbName, other.dbName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetFuncName(), other.isSetFuncName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetFuncName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.funcName, other.funcName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_function_args(");
      boolean first = true;

      sb.append("dbName:");
      if (this.dbName == null) {
        sb.append("null");
      } else {
        sb.append(this.dbName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("funcName:");
      if (this.funcName == null) {
        sb.append("null");
      } else {
        sb.append(this.funcName);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_function_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_function_argsStandardScheme getScheme() {
        return new drop_function_argsStandardScheme();
      }
    }

    private static class drop_function_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_function_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_function_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.dbName = iprot.readString();
                struct.setDbNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // FUNC_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.funcName = iprot.readString();
                struct.setFuncNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_function_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.dbName != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.dbName);
          oprot.writeFieldEnd();
        }
        if (struct.funcName != null) {
          oprot.writeFieldBegin(FUNC_NAME_FIELD_DESC);
          oprot.writeString(struct.funcName);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_function_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_function_argsTupleScheme getScheme() {
        return new drop_function_argsTupleScheme();
      }
    }

    private static class drop_function_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_function_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_function_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDbName()) {
          optionals.set(0);
        }
        if (struct.isSetFuncName()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetDbName()) {
          oprot.writeString(struct.dbName);
        }
        if (struct.isSetFuncName()) {
          oprot.writeString(struct.funcName);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_function_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.dbName = iprot.readString();
          struct.setDbNameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.funcName = iprot.readString();
          struct.setFuncNameIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_function_result implements org.apache.thrift.TBase<drop_function_result, drop_function_result._Fields>, java.io.Serializable, Cloneable, Comparable<drop_function_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_function_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_function_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_function_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O3((short)2, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_function_result.class, metaDataMap);
    }

    public drop_function_result() {
    }

    public drop_function_result(
      NoSuchObjectException o1,
      MetaException o3)
    {
      this();
      this.o1 = o1;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_function_result(drop_function_result other) {
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
    }

    public drop_function_result deepCopy() {
      return new drop_function_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o3 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_function_result)
        return this.equals((drop_function_result)that);
      return false;
    }

    public boolean equals(drop_function_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(drop_function_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_function_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_function_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_function_resultStandardScheme getScheme() {
        return new drop_function_resultStandardScheme();
      }
    }

    private static class drop_function_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_function_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_function_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_function_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_function_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_function_resultTupleScheme getScheme() {
        return new drop_function_resultTupleScheme();
      }
    }

    private static class drop_function_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_function_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_function_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO3()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_function_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_function_args implements org.apache.thrift.TBase<alter_function_args, alter_function_args._Fields>, java.io.Serializable, Cloneable, Comparable<alter_function_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("alter_function_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("dbName", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField FUNC_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("funcName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField NEW_FUNC_FIELD_DESC = new org.apache.thrift.protocol.TField("newFunc", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new alter_function_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new alter_function_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String dbName; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String funcName; // required
    private @org.apache.thrift.annotation.Nullable Function newFunc; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "dbName"),
      FUNC_NAME((short)2, "funcName"),
      NEW_FUNC((short)3, "newFunc");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // FUNC_NAME
            return FUNC_NAME;
          case 3: // NEW_FUNC
            return NEW_FUNC;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("dbName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.FUNC_NAME, new org.apache.thrift.meta_data.FieldMetaData("funcName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.NEW_FUNC, new org.apache.thrift.meta_data.FieldMetaData("newFunc", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Function.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(alter_function_args.class, metaDataMap);
    }

    public alter_function_args() {
    }

    public alter_function_args(
      java.lang.String dbName,
      java.lang.String funcName,
      Function newFunc)
    {
      this();
      this.dbName = dbName;
      this.funcName = funcName;
      this.newFunc = newFunc;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public alter_function_args(alter_function_args other) {
      if (other.isSetDbName()) {
        this.dbName = other.dbName;
      }
      if (other.isSetFuncName()) {
        this.funcName = other.funcName;
      }
      if (other.isSetNewFunc()) {
        this.newFunc = new Function(other.newFunc);
      }
    }

    public alter_function_args deepCopy() {
      return new alter_function_args(this);
    }

    @Override
    public void clear() {
      this.dbName = null;
      this.funcName = null;
      this.newFunc = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDbName() {
      return this.dbName;
    }

    public void setDbName(@org.apache.thrift.annotation.Nullable java.lang.String dbName) {
      this.dbName = dbName;
    }

    public void unsetDbName() {
      this.dbName = null;
    }

    /** Returns true if field dbName is set (has been assigned a value) and false otherwise */
    public boolean isSetDbName() {
      return this.dbName != null;
    }

    public void setDbNameIsSet(boolean value) {
      if (!value) {
        this.dbName = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getFuncName() {
      return this.funcName;
    }

    public void setFuncName(@org.apache.thrift.annotation.Nullable java.lang.String funcName) {
      this.funcName = funcName;
    }

    public void unsetFuncName() {
      this.funcName = null;
    }

    /** Returns true if field funcName is set (has been assigned a value) and false otherwise */
    public boolean isSetFuncName() {
      return this.funcName != null;
    }

    public void setFuncNameIsSet(boolean value) {
      if (!value) {
        this.funcName = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public Function getNewFunc() {
      return this.newFunc;
    }

    public void setNewFunc(@org.apache.thrift.annotation.Nullable Function newFunc) {
      this.newFunc = newFunc;
    }

    public void unsetNewFunc() {
      this.newFunc = null;
    }

    /** Returns true if field newFunc is set (has been assigned a value) and false otherwise */
    public boolean isSetNewFunc() {
      return this.newFunc != null;
    }

    public void setNewFuncIsSet(boolean value) {
      if (!value) {
        this.newFunc = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDbName();
        } else {
          setDbName((java.lang.String)value);
        }
        break;

      case FUNC_NAME:
        if (value == null) {
          unsetFuncName();
        } else {
          setFuncName((java.lang.String)value);
        }
        break;

      case NEW_FUNC:
        if (value == null) {
          unsetNewFunc();
        } else {
          setNewFunc((Function)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDbName();

      case FUNC_NAME:
        return getFuncName();

      case NEW_FUNC:
        return getNewFunc();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDbName();
      case FUNC_NAME:
        return isSetFuncName();
      case NEW_FUNC:
        return isSetNewFunc();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof alter_function_args)
        return this.equals((alter_function_args)that);
      return false;
    }

    public boolean equals(alter_function_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_dbName = true && this.isSetDbName();
      boolean that_present_dbName = true && that.isSetDbName();
      if (this_present_dbName || that_present_dbName) {
        if (!(this_present_dbName && that_present_dbName))
          return false;
        if (!this.dbName.equals(that.dbName))
          return false;
      }

      boolean this_present_funcName = true && this.isSetFuncName();
      boolean that_present_funcName = true && that.isSetFuncName();
      if (this_present_funcName || that_present_funcName) {
        if (!(this_present_funcName && that_present_funcName))
          return false;
        if (!this.funcName.equals(that.funcName))
          return false;
      }

      boolean this_present_newFunc = true && this.isSetNewFunc();
      boolean that_present_newFunc = true && that.isSetNewFunc();
      if (this_present_newFunc || that_present_newFunc) {
        if (!(this_present_newFunc && that_present_newFunc))
          return false;
        if (!this.newFunc.equals(that.newFunc))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDbName()) ? 131071 : 524287);
      if (isSetDbName())
        hashCode = hashCode * 8191 + dbName.hashCode();

      hashCode = hashCode * 8191 + ((isSetFuncName()) ? 131071 : 524287);
      if (isSetFuncName())
        hashCode = hashCode * 8191 + funcName.hashCode();

      hashCode = hashCode * 8191 + ((isSetNewFunc()) ? 131071 : 524287);
      if (isSetNewFunc())
        hashCode = hashCode * 8191 + newFunc.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(alter_function_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDbName(), other.isSetDbName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDbName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dbName, other.dbName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetFuncName(), other.isSetFuncName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetFuncName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.funcName, other.funcName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetNewFunc(), other.isSetNewFunc());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetNewFunc()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.newFunc, other.newFunc);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("alter_function_args(");
      boolean first = true;

      sb.append("dbName:");
      if (this.dbName == null) {
        sb.append("null");
      } else {
        sb.append(this.dbName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("funcName:");
      if (this.funcName == null) {
        sb.append("null");
      } else {
        sb.append(this.funcName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("newFunc:");
      if (this.newFunc == null) {
        sb.append("null");
      } else {
        sb.append(this.newFunc);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (newFunc != null) {
        newFunc.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class alter_function_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_function_argsStandardScheme getScheme() {
        return new alter_function_argsStandardScheme();
      }
    }

    private static class alter_function_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<alter_function_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, alter_function_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.dbName = iprot.readString();
                struct.setDbNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // FUNC_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.funcName = iprot.readString();
                struct.setFuncNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // NEW_FUNC
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.newFunc = new Function();
                struct.newFunc.read(iprot);
                struct.setNewFuncIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, alter_function_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.dbName != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.dbName);
          oprot.writeFieldEnd();
        }
        if (struct.funcName != null) {
          oprot.writeFieldBegin(FUNC_NAME_FIELD_DESC);
          oprot.writeString(struct.funcName);
          oprot.writeFieldEnd();
        }
        if (struct.newFunc != null) {
          oprot.writeFieldBegin(NEW_FUNC_FIELD_DESC);
          struct.newFunc.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class alter_function_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_function_argsTupleScheme getScheme() {
        return new alter_function_argsTupleScheme();
      }
    }

    private static class alter_function_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<alter_function_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, alter_function_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDbName()) {
          optionals.set(0);
        }
        if (struct.isSetFuncName()) {
          optionals.set(1);
        }
        if (struct.isSetNewFunc()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetDbName()) {
          oprot.writeString(struct.dbName);
        }
        if (struct.isSetFuncName()) {
          oprot.writeString(struct.funcName);
        }
        if (struct.isSetNewFunc()) {
          struct.newFunc.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, alter_function_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.dbName = iprot.readString();
          struct.setDbNameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.funcName = iprot.readString();
          struct.setFuncNameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.newFunc = new Function();
          struct.newFunc.read(iprot);
          struct.setNewFuncIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_function_result implements org.apache.thrift.TBase<alter_function_result, alter_function_result._Fields>, java.io.Serializable, Cloneable, Comparable<alter_function_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("alter_function_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new alter_function_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new alter_function_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable InvalidOperationException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidOperationException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(alter_function_result.class, metaDataMap);
    }

    public alter_function_result() {
    }

    public alter_function_result(
      InvalidOperationException o1,
      MetaException o2)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public alter_function_result(alter_function_result other) {
      if (other.isSetO1()) {
        this.o1 = new InvalidOperationException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public alter_function_result deepCopy() {
      return new alter_function_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidOperationException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable InvalidOperationException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((InvalidOperationException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof alter_function_result)
        return this.equals((alter_function_result)that);
      return false;
    }

    public boolean equals(alter_function_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(alter_function_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("alter_function_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class alter_function_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_function_resultStandardScheme getScheme() {
        return new alter_function_resultStandardScheme();
      }
    }

    private static class alter_function_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<alter_function_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, alter_function_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new InvalidOperationException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, alter_function_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class alter_function_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_function_resultTupleScheme getScheme() {
        return new alter_function_resultTupleScheme();
      }
    }

    private static class alter_function_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<alter_function_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, alter_function_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, alter_function_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.o1 = new InvalidOperationException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_functions_args implements org.apache.thrift.TBase<get_functions_args, get_functions_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_functions_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_functions_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("dbName", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField PATTERN_FIELD_DESC = new org.apache.thrift.protocol.TField("pattern", org.apache.thrift.protocol.TType.STRING, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_functions_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_functions_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String dbName; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String pattern; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "dbName"),
      PATTERN((short)2, "pattern");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // PATTERN
            return PATTERN;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("dbName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PATTERN, new org.apache.thrift.meta_data.FieldMetaData("pattern", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_functions_args.class, metaDataMap);
    }

    public get_functions_args() {
    }

    public get_functions_args(
      java.lang.String dbName,
      java.lang.String pattern)
    {
      this();
      this.dbName = dbName;
      this.pattern = pattern;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_functions_args(get_functions_args other) {
      if (other.isSetDbName()) {
        this.dbName = other.dbName;
      }
      if (other.isSetPattern()) {
        this.pattern = other.pattern;
      }
    }

    public get_functions_args deepCopy() {
      return new get_functions_args(this);
    }

    @Override
    public void clear() {
      this.dbName = null;
      this.pattern = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDbName() {
      return this.dbName;
    }

    public void setDbName(@org.apache.thrift.annotation.Nullable java.lang.String dbName) {
      this.dbName = dbName;
    }

    public void unsetDbName() {
      this.dbName = null;
    }

    /** Returns true if field dbName is set (has been assigned a value) and false otherwise */
    public boolean isSetDbName() {
      return this.dbName != null;
    }

    public void setDbNameIsSet(boolean value) {
      if (!value) {
        this.dbName = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getPattern() {
      return this.pattern;
    }

    public void setPattern(@org.apache.thrift.annotation.Nullable java.lang.String pattern) {
      this.pattern = pattern;
    }

    public void unsetPattern() {
      this.pattern = null;
    }

    /** Returns true if field pattern is set (has been assigned a value) and false otherwise */
    public boolean isSetPattern() {
      return this.pattern != null;
    }

    public void setPatternIsSet(boolean value) {
      if (!value) {
        this.pattern = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDbName();
        } else {
          setDbName((java.lang.String)value);
        }
        break;

      case PATTERN:
        if (value == null) {
          unsetPattern();
        } else {
          setPattern((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDbName();

      case PATTERN:
        return getPattern();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDbName();
      case PATTERN:
        return isSetPattern();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_functions_args)
        return this.equals((get_functions_args)that);
      return false;
    }

    public boolean equals(get_functions_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_dbName = true && this.isSetDbName();
      boolean that_present_dbName = true && that.isSetDbName();
      if (this_present_dbName || that_present_dbName) {
        if (!(this_present_dbName && that_present_dbName))
          return false;
        if (!this.dbName.equals(that.dbName))
          return false;
      }

      boolean this_present_pattern = true && this.isSetPattern();
      boolean that_present_pattern = true && that.isSetPattern();
      if (this_present_pattern || that_present_pattern) {
        if (!(this_present_pattern && that_present_pattern))
          return false;
        if (!this.pattern.equals(that.pattern))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDbName()) ? 131071 : 524287);
      if (isSetDbName())
        hashCode = hashCode * 8191 + dbName.hashCode();

      hashCode = hashCode * 8191 + ((isSetPattern()) ? 131071 : 524287);
      if (isSetPattern())
        hashCode = hashCode * 8191 + pattern.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_functions_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDbName(), other.isSetDbName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDbName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dbName, other.dbName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetPattern(), other.isSetPattern());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPattern()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.pattern, other.pattern);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_functions_args(");
      boolean first = true;

      sb.append("dbName:");
      if (this.dbName == null) {
        sb.append("null");
      } else {
        sb.append(this.dbName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("pattern:");
      if (this.pattern == null) {
        sb.append("null");
      } else {
        sb.append(this.pattern);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_functions_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_functions_argsStandardScheme getScheme() {
        return new get_functions_argsStandardScheme();
      }
    }

    private static class get_functions_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_functions_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_functions_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.dbName = iprot.readString();
                struct.setDbNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // PATTERN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.pattern = iprot.readString();
                struct.setPatternIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_functions_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.dbName != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.dbName);
          oprot.writeFieldEnd();
        }
        if (struct.pattern != null) {
          oprot.writeFieldBegin(PATTERN_FIELD_DESC);
          oprot.writeString(struct.pattern);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_functions_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_functions_argsTupleScheme getScheme() {
        return new get_functions_argsTupleScheme();
      }
    }

    private static class get_functions_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_functions_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_functions_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDbName()) {
          optionals.set(0);
        }
        if (struct.isSetPattern()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetDbName()) {
          oprot.writeString(struct.dbName);
        }
        if (struct.isSetPattern()) {
          oprot.writeString(struct.pattern);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_functions_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.dbName = iprot.readString();
          struct.setDbNameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.pattern = iprot.readString();
          struct.setPatternIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_functions_result implements org.apache.thrift.TBase<get_functions_result, get_functions_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_functions_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_functions_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_functions_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_functions_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_functions_result.class, metaDataMap);
    }

    public get_functions_result() {
    }

    public get_functions_result(
      java.util.List<java.lang.String> success,
      MetaException o1)
    {
      this();
      this.success = success;
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_functions_result(get_functions_result other) {
      if (other.isSetSuccess()) {
        java.util.List<java.lang.String> __this__success = new java.util.ArrayList<java.lang.String>(other.success);
        this.success = __this__success;
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public get_functions_result deepCopy() {
      return new get_functions_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(java.lang.String elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<java.lang.String>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<java.lang.String>)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_functions_result)
        return this.equals((get_functions_result)that);
      return false;
    }

    public boolean equals(get_functions_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_functions_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_functions_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_functions_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_functions_resultStandardScheme getScheme() {
        return new get_functions_resultStandardScheme();
      }
    }

    private static class get_functions_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_functions_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_functions_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1404 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<java.lang.String>(_list1404.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem1405;
                  for (int _i1406 = 0; _i1406 < _list1404.size; ++_i1406)
                  {
                    _elem1405 = iprot.readString();
                    struct.success.add(_elem1405);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_functions_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.success.size()));
            for (java.lang.String _iter1407 : struct.success)
            {
              oprot.writeString(_iter1407);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_functions_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_functions_resultTupleScheme getScheme() {
        return new get_functions_resultTupleScheme();
      }
    }

    private static class get_functions_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_functions_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_functions_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (java.lang.String _iter1408 : struct.success)
            {
              oprot.writeString(_iter1408);
            }
          }
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_functions_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list1409 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.success = new java.util.ArrayList<java.lang.String>(_list1409.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem1410;
            for (int _i1411 = 0; _i1411 < _list1409.size; ++_i1411)
            {
              _elem1410 = iprot.readString();
              struct.success.add(_elem1410);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_function_args implements org.apache.thrift.TBase<get_function_args, get_function_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_function_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_function_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("dbName", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField FUNC_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("funcName", org.apache.thrift.protocol.TType.STRING, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_function_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_function_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String dbName; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String funcName; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "dbName"),
      FUNC_NAME((short)2, "funcName");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // FUNC_NAME
            return FUNC_NAME;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("dbName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.FUNC_NAME, new org.apache.thrift.meta_data.FieldMetaData("funcName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_function_args.class, metaDataMap);
    }

    public get_function_args() {
    }

    public get_function_args(
      java.lang.String dbName,
      java.lang.String funcName)
    {
      this();
      this.dbName = dbName;
      this.funcName = funcName;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_function_args(get_function_args other) {
      if (other.isSetDbName()) {
        this.dbName = other.dbName;
      }
      if (other.isSetFuncName()) {
        this.funcName = other.funcName;
      }
    }

    public get_function_args deepCopy() {
      return new get_function_args(this);
    }

    @Override
    public void clear() {
      this.dbName = null;
      this.funcName = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDbName() {
      return this.dbName;
    }

    public void setDbName(@org.apache.thrift.annotation.Nullable java.lang.String dbName) {
      this.dbName = dbName;
    }

    public void unsetDbName() {
      this.dbName = null;
    }

    /** Returns true if field dbName is set (has been assigned a value) and false otherwise */
    public boolean isSetDbName() {
      return this.dbName != null;
    }

    public void setDbNameIsSet(boolean value) {
      if (!value) {
        this.dbName = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getFuncName() {
      return this.funcName;
    }

    public void setFuncName(@org.apache.thrift.annotation.Nullable java.lang.String funcName) {
      this.funcName = funcName;
    }

    public void unsetFuncName() {
      this.funcName = null;
    }

    /** Returns true if field funcName is set (has been assigned a value) and false otherwise */
    public boolean isSetFuncName() {
      return this.funcName != null;
    }

    public void setFuncNameIsSet(boolean value) {
      if (!value) {
        this.funcName = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDbName();
        } else {
          setDbName((java.lang.String)value);
        }
        break;

      case FUNC_NAME:
        if (value == null) {
          unsetFuncName();
        } else {
          setFuncName((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDbName();

      case FUNC_NAME:
        return getFuncName();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDbName();
      case FUNC_NAME:
        return isSetFuncName();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_function_args)
        return this.equals((get_function_args)that);
      return false;
    }

    public boolean equals(get_function_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_dbName = true && this.isSetDbName();
      boolean that_present_dbName = true && that.isSetDbName();
      if (this_present_dbName || that_present_dbName) {
        if (!(this_present_dbName && that_present_dbName))
          return false;
        if (!this.dbName.equals(that.dbName))
          return false;
      }

      boolean this_present_funcName = true && this.isSetFuncName();
      boolean that_present_funcName = true && that.isSetFuncName();
      if (this_present_funcName || that_present_funcName) {
        if (!(this_present_funcName && that_present_funcName))
          return false;
        if (!this.funcName.equals(that.funcName))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDbName()) ? 131071 : 524287);
      if (isSetDbName())
        hashCode = hashCode * 8191 + dbName.hashCode();

      hashCode = hashCode * 8191 + ((isSetFuncName()) ? 131071 : 524287);
      if (isSetFuncName())
        hashCode = hashCode * 8191 + funcName.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_function_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDbName(), other.isSetDbName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDbName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dbName, other.dbName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetFuncName(), other.isSetFuncName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetFuncName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.funcName, other.funcName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_function_args(");
      boolean first = true;

      sb.append("dbName:");
      if (this.dbName == null) {
        sb.append("null");
      } else {
        sb.append(this.dbName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("funcName:");
      if (this.funcName == null) {
        sb.append("null");
      } else {
        sb.append(this.funcName);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_function_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_function_argsStandardScheme getScheme() {
        return new get_function_argsStandardScheme();
      }
    }

    private static class get_function_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_function_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_function_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.dbName = iprot.readString();
                struct.setDbNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // FUNC_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.funcName = iprot.readString();
                struct.setFuncNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_function_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.dbName != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.dbName);
          oprot.writeFieldEnd();
        }
        if (struct.funcName != null) {
          oprot.writeFieldBegin(FUNC_NAME_FIELD_DESC);
          oprot.writeString(struct.funcName);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_function_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_function_argsTupleScheme getScheme() {
        return new get_function_argsTupleScheme();
      }
    }

    private static class get_function_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_function_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_function_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDbName()) {
          optionals.set(0);
        }
        if (struct.isSetFuncName()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetDbName()) {
          oprot.writeString(struct.dbName);
        }
        if (struct.isSetFuncName()) {
          oprot.writeString(struct.funcName);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_function_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.dbName = iprot.readString();
          struct.setDbNameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.funcName = iprot.readString();
          struct.setFuncNameIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_function_result implements org.apache.thrift.TBase<get_function_result, get_function_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_function_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_function_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_function_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_function_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable Function success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Function.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_function_result.class, metaDataMap);
    }

    public get_function_result() {
    }

    public get_function_result(
      Function success,
      MetaException o1,
      NoSuchObjectException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_function_result(get_function_result other) {
      if (other.isSetSuccess()) {
        this.success = new Function(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchObjectException(other.o2);
      }
    }

    public get_function_result deepCopy() {
      return new get_function_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public Function getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable Function success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((Function)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchObjectException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_function_result)
        return this.equals((get_function_result)that);
      return false;
    }

    public boolean equals(get_function_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_function_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_function_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_function_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_function_resultStandardScheme getScheme() {
        return new get_function_resultStandardScheme();
      }
    }

    private static class get_function_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_function_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_function_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new Function();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_function_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_function_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_function_resultTupleScheme getScheme() {
        return new get_function_resultTupleScheme();
      }
    }

    private static class get_function_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_function_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_function_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_function_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = new Function();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new NoSuchObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_all_functions_args implements org.apache.thrift.TBase<get_all_functions_args, get_all_functions_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_all_functions_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_all_functions_args");


    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_all_functions_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_all_functions_argsTupleSchemeFactory();


    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
;

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_all_functions_args.class, metaDataMap);
    }

    public get_all_functions_args() {
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_all_functions_args(get_all_functions_args other) {
    }

    public get_all_functions_args deepCopy() {
      return new get_all_functions_args(this);
    }

    @Override
    public void clear() {
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_all_functions_args)
        return this.equals((get_all_functions_args)that);
      return false;
    }

    public boolean equals(get_all_functions_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      return hashCode;
    }

    @Override
    public int compareTo(get_all_functions_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_all_functions_args(");
      boolean first = true;

      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_all_functions_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_all_functions_argsStandardScheme getScheme() {
        return new get_all_functions_argsStandardScheme();
      }
    }

    private static class get_all_functions_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_all_functions_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_all_functions_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_all_functions_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_all_functions_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_all_functions_argsTupleScheme getScheme() {
        return new get_all_functions_argsTupleScheme();
      }
    }

    private static class get_all_functions_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_all_functions_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_all_functions_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_all_functions_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_all_functions_result implements org.apache.thrift.TBase<get_all_functions_result, get_all_functions_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_all_functions_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_all_functions_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_all_functions_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_all_functions_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable GetAllFunctionsResponse success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetAllFunctionsResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_all_functions_result.class, metaDataMap);
    }

    public get_all_functions_result() {
    }

    public get_all_functions_result(
      GetAllFunctionsResponse success,
      MetaException o1)
    {
      this();
      this.success = success;
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_all_functions_result(get_all_functions_result other) {
      if (other.isSetSuccess()) {
        this.success = new GetAllFunctionsResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public get_all_functions_result deepCopy() {
      return new get_all_functions_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public GetAllFunctionsResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable GetAllFunctionsResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((GetAllFunctionsResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_all_functions_result)
        return this.equals((get_all_functions_result)that);
      return false;
    }

    public boolean equals(get_all_functions_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_all_functions_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_all_functions_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_all_functions_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_all_functions_resultStandardScheme getScheme() {
        return new get_all_functions_resultStandardScheme();
      }
    }

    private static class get_all_functions_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_all_functions_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_all_functions_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new GetAllFunctionsResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_all_functions_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_all_functions_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_all_functions_resultTupleScheme getScheme() {
        return new get_all_functions_resultTupleScheme();
      }
    }

    private static class get_all_functions_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_all_functions_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_all_functions_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_all_functions_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.success = new GetAllFunctionsResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_role_args implements org.apache.thrift.TBase<create_role_args, create_role_args._Fields>, java.io.Serializable, Cloneable, Comparable<create_role_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("create_role_args");

    private static final org.apache.thrift.protocol.TField ROLE_FIELD_DESC = new org.apache.thrift.protocol.TField("role", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new create_role_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new create_role_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable Role role; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      ROLE((short)1, "role");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // ROLE
            return ROLE;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.ROLE, new org.apache.thrift.meta_data.FieldMetaData("role", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Role.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(create_role_args.class, metaDataMap);
    }

    public create_role_args() {
    }

    public create_role_args(
      Role role)
    {
      this();
      this.role = role;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public create_role_args(create_role_args other) {
      if (other.isSetRole()) {
        this.role = new Role(other.role);
      }
    }

    public create_role_args deepCopy() {
      return new create_role_args(this);
    }

    @Override
    public void clear() {
      this.role = null;
    }

    @org.apache.thrift.annotation.Nullable
    public Role getRole() {
      return this.role;
    }

    public void setRole(@org.apache.thrift.annotation.Nullable Role role) {
      this.role = role;
    }

    public void unsetRole() {
      this.role = null;
    }

    /** Returns true if field role is set (has been assigned a value) and false otherwise */
    public boolean isSetRole() {
      return this.role != null;
    }

    public void setRoleIsSet(boolean value) {
      if (!value) {
        this.role = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case ROLE:
        if (value == null) {
          unsetRole();
        } else {
          setRole((Role)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case ROLE:
        return getRole();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case ROLE:
        return isSetRole();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof create_role_args)
        return this.equals((create_role_args)that);
      return false;
    }

    public boolean equals(create_role_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_role = true && this.isSetRole();
      boolean that_present_role = true && that.isSetRole();
      if (this_present_role || that_present_role) {
        if (!(this_present_role && that_present_role))
          return false;
        if (!this.role.equals(that.role))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRole()) ? 131071 : 524287);
      if (isSetRole())
        hashCode = hashCode * 8191 + role.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(create_role_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRole(), other.isSetRole());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRole()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.role, other.role);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("create_role_args(");
      boolean first = true;

      sb.append("role:");
      if (this.role == null) {
        sb.append("null");
      } else {
        sb.append(this.role);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (role != null) {
        role.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class create_role_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_role_argsStandardScheme getScheme() {
        return new create_role_argsStandardScheme();
      }
    }

    private static class create_role_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<create_role_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, create_role_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // ROLE
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.role = new Role();
                struct.role.read(iprot);
                struct.setRoleIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, create_role_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.role != null) {
          oprot.writeFieldBegin(ROLE_FIELD_DESC);
          struct.role.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class create_role_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_role_argsTupleScheme getScheme() {
        return new create_role_argsTupleScheme();
      }
    }

    private static class create_role_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<create_role_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, create_role_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRole()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRole()) {
          struct.role.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, create_role_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.role = new Role();
          struct.role.read(iprot);
          struct.setRoleIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_role_result implements org.apache.thrift.TBase<create_role_result, create_role_result._Fields>, java.io.Serializable, Cloneable, Comparable<create_role_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("create_role_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new create_role_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new create_role_resultTupleSchemeFactory();

    private boolean success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(create_role_result.class, metaDataMap);
    }

    public create_role_result() {
    }

    public create_role_result(
      boolean success,
      MetaException o1)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public create_role_result(create_role_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public create_role_result deepCopy() {
      return new create_role_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = false;
      this.o1 = null;
    }

    public boolean isSuccess() {
      return this.success;
    }

    public void setSuccess(boolean success) {
      this.success = success;
      setSuccessIsSet(true);
    }

    public void unsetSuccess() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.lang.Boolean)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return isSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof create_role_result)
        return this.equals((create_role_result)that);
      return false;
    }

    public boolean equals(create_role_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(create_role_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("create_role_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class create_role_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_role_resultStandardScheme getScheme() {
        return new create_role_resultStandardScheme();
      }
    }

    private static class create_role_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<create_role_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, create_role_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.success = iprot.readBool();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, create_role_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeBool(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class create_role_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_role_resultTupleScheme getScheme() {
        return new create_role_resultTupleScheme();
      }
    }

    private static class create_role_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<create_role_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, create_role_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          oprot.writeBool(struct.success);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, create_role_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.success = iprot.readBool();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_role_args implements org.apache.thrift.TBase<drop_role_args, drop_role_args._Fields>, java.io.Serializable, Cloneable, Comparable<drop_role_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_role_args");

    private static final org.apache.thrift.protocol.TField ROLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("role_name", org.apache.thrift.protocol.TType.STRING, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_role_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_role_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String role_name; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      ROLE_NAME((short)1, "role_name");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // ROLE_NAME
            return ROLE_NAME;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.ROLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("role_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_role_args.class, metaDataMap);
    }

    public drop_role_args() {
    }

    public drop_role_args(
      java.lang.String role_name)
    {
      this();
      this.role_name = role_name;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_role_args(drop_role_args other) {
      if (other.isSetRole_name()) {
        this.role_name = other.role_name;
      }
    }

    public drop_role_args deepCopy() {
      return new drop_role_args(this);
    }

    @Override
    public void clear() {
      this.role_name = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getRole_name() {
      return this.role_name;
    }

    public void setRole_name(@org.apache.thrift.annotation.Nullable java.lang.String role_name) {
      this.role_name = role_name;
    }

    public void unsetRole_name() {
      this.role_name = null;
    }

    /** Returns true if field role_name is set (has been assigned a value) and false otherwise */
    public boolean isSetRole_name() {
      return this.role_name != null;
    }

    public void setRole_nameIsSet(boolean value) {
      if (!value) {
        this.role_name = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case ROLE_NAME:
        if (value == null) {
          unsetRole_name();
        } else {
          setRole_name((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case ROLE_NAME:
        return getRole_name();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case ROLE_NAME:
        return isSetRole_name();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_role_args)
        return this.equals((drop_role_args)that);
      return false;
    }

    public boolean equals(drop_role_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_role_name = true && this.isSetRole_name();
      boolean that_present_role_name = true && that.isSetRole_name();
      if (this_present_role_name || that_present_role_name) {
        if (!(this_present_role_name && that_present_role_name))
          return false;
        if (!this.role_name.equals(that.role_name))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRole_name()) ? 131071 : 524287);
      if (isSetRole_name())
        hashCode = hashCode * 8191 + role_name.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(drop_role_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRole_name(), other.isSetRole_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRole_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.role_name, other.role_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_role_args(");
      boolean first = true;

      sb.append("role_name:");
      if (this.role_name == null) {
        sb.append("null");
      } else {
        sb.append(this.role_name);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_role_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_role_argsStandardScheme getScheme() {
        return new drop_role_argsStandardScheme();
      }
    }

    private static class drop_role_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_role_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_role_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // ROLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.role_name = iprot.readString();
                struct.setRole_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_role_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.role_name != null) {
          oprot.writeFieldBegin(ROLE_NAME_FIELD_DESC);
          oprot.writeString(struct.role_name);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_role_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_role_argsTupleScheme getScheme() {
        return new drop_role_argsTupleScheme();
      }
    }

    private static class drop_role_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_role_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_role_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRole_name()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRole_name()) {
          oprot.writeString(struct.role_name);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_role_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.role_name = iprot.readString();
          struct.setRole_nameIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_role_result implements org.apache.thrift.TBase<drop_role_result, drop_role_result._Fields>, java.io.Serializable, Cloneable, Comparable<drop_role_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_role_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_role_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_role_resultTupleSchemeFactory();

    private boolean success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_role_result.class, metaDataMap);
    }

    public drop_role_result() {
    }

    public drop_role_result(
      boolean success,
      MetaException o1)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_role_result(drop_role_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public drop_role_result deepCopy() {
      return new drop_role_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = false;
      this.o1 = null;
    }

    public boolean isSuccess() {
      return this.success;
    }

    public void setSuccess(boolean success) {
      this.success = success;
      setSuccessIsSet(true);
    }

    public void unsetSuccess() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.lang.Boolean)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return isSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_role_result)
        return this.equals((drop_role_result)that);
      return false;
    }

    public boolean equals(drop_role_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(drop_role_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_role_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_role_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_role_resultStandardScheme getScheme() {
        return new drop_role_resultStandardScheme();
      }
    }

    private static class drop_role_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_role_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_role_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.success = iprot.readBool();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_role_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeBool(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_role_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_role_resultTupleScheme getScheme() {
        return new drop_role_resultTupleScheme();
      }
    }

    private static class drop_role_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_role_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_role_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          oprot.writeBool(struct.success);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_role_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.success = iprot.readBool();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_role_names_args implements org.apache.thrift.TBase<get_role_names_args, get_role_names_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_role_names_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_role_names_args");


    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_role_names_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_role_names_argsTupleSchemeFactory();


    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
;

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_role_names_args.class, metaDataMap);
    }

    public get_role_names_args() {
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_role_names_args(get_role_names_args other) {
    }

    public get_role_names_args deepCopy() {
      return new get_role_names_args(this);
    }

    @Override
    public void clear() {
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_role_names_args)
        return this.equals((get_role_names_args)that);
      return false;
    }

    public boolean equals(get_role_names_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      return hashCode;
    }

    @Override
    public int compareTo(get_role_names_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_role_names_args(");
      boolean first = true;

      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_role_names_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_role_names_argsStandardScheme getScheme() {
        return new get_role_names_argsStandardScheme();
      }
    }

    private static class get_role_names_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_role_names_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_role_names_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_role_names_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_role_names_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_role_names_argsTupleScheme getScheme() {
        return new get_role_names_argsTupleScheme();
      }
    }

    private static class get_role_names_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_role_names_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_role_names_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_role_names_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_role_names_result implements org.apache.thrift.TBase<get_role_names_result, get_role_names_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_role_names_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_role_names_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_role_names_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_role_names_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_role_names_result.class, metaDataMap);
    }

    public get_role_names_result() {
    }

    public get_role_names_result(
      java.util.List<java.lang.String> success,
      MetaException o1)
    {
      this();
      this.success = success;
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_role_names_result(get_role_names_result other) {
      if (other.isSetSuccess()) {
        java.util.List<java.lang.String> __this__success = new java.util.ArrayList<java.lang.String>(other.success);
        this.success = __this__success;
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public get_role_names_result deepCopy() {
      return new get_role_names_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(java.lang.String elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<java.lang.String>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<java.lang.String>)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_role_names_result)
        return this.equals((get_role_names_result)that);
      return false;
    }

    public boolean equals(get_role_names_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_role_names_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_role_names_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_role_names_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_role_names_resultStandardScheme getScheme() {
        return new get_role_names_resultStandardScheme();
      }
    }

    private static class get_role_names_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_role_names_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_role_names_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1412 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<java.lang.String>(_list1412.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem1413;
                  for (int _i1414 = 0; _i1414 < _list1412.size; ++_i1414)
                  {
                    _elem1413 = iprot.readString();
                    struct.success.add(_elem1413);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_role_names_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.success.size()));
            for (java.lang.String _iter1415 : struct.success)
            {
              oprot.writeString(_iter1415);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_role_names_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_role_names_resultTupleScheme getScheme() {
        return new get_role_names_resultTupleScheme();
      }
    }

    private static class get_role_names_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_role_names_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_role_names_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (java.lang.String _iter1416 : struct.success)
            {
              oprot.writeString(_iter1416);
            }
          }
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_role_names_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list1417 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.success = new java.util.ArrayList<java.lang.String>(_list1417.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem1418;
            for (int _i1419 = 0; _i1419 < _list1417.size; ++_i1419)
            {
              _elem1418 = iprot.readString();
              struct.success.add(_elem1418);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class grant_role_args implements org.apache.thrift.TBase<grant_role_args, grant_role_args._Fields>, java.io.Serializable, Cloneable, Comparable<grant_role_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("grant_role_args");

    private static final org.apache.thrift.protocol.TField ROLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("role_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField PRINCIPAL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("principal_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField PRINCIPAL_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("principal_type", org.apache.thrift.protocol.TType.I32, (short)3);
    private static final org.apache.thrift.protocol.TField GRANTOR_FIELD_DESC = new org.apache.thrift.protocol.TField("grantor", org.apache.thrift.protocol.TType.STRING, (short)4);
    private static final org.apache.thrift.protocol.TField GRANTOR_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("grantorType", org.apache.thrift.protocol.TType.I32, (short)5);
    private static final org.apache.thrift.protocol.TField GRANT_OPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("grant_option", org.apache.thrift.protocol.TType.BOOL, (short)6);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new grant_role_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new grant_role_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String role_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String principal_name; // required
    private @org.apache.thrift.annotation.Nullable PrincipalType principal_type; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String grantor; // required
    private @org.apache.thrift.annotation.Nullable PrincipalType grantorType; // required
    private boolean grant_option; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      ROLE_NAME((short)1, "role_name"),
      PRINCIPAL_NAME((short)2, "principal_name"),
      /**
       * 
       * @see PrincipalType
       */
      PRINCIPAL_TYPE((short)3, "principal_type"),
      GRANTOR((short)4, "grantor"),
      /**
       * 
       * @see PrincipalType
       */
      GRANTOR_TYPE((short)5, "grantorType"),
      GRANT_OPTION((short)6, "grant_option");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // ROLE_NAME
            return ROLE_NAME;
          case 2: // PRINCIPAL_NAME
            return PRINCIPAL_NAME;
          case 3: // PRINCIPAL_TYPE
            return PRINCIPAL_TYPE;
          case 4: // GRANTOR
            return GRANTOR;
          case 5: // GRANTOR_TYPE
            return GRANTOR_TYPE;
          case 6: // GRANT_OPTION
            return GRANT_OPTION;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __GRANT_OPTION_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.ROLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("role_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PRINCIPAL_NAME, new org.apache.thrift.meta_data.FieldMetaData("principal_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PRINCIPAL_TYPE, new org.apache.thrift.meta_data.FieldMetaData("principal_type", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, PrincipalType.class)));
      tmpMap.put(_Fields.GRANTOR, new org.apache.thrift.meta_data.FieldMetaData("grantor", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.GRANTOR_TYPE, new org.apache.thrift.meta_data.FieldMetaData("grantorType", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, PrincipalType.class)));
      tmpMap.put(_Fields.GRANT_OPTION, new org.apache.thrift.meta_data.FieldMetaData("grant_option", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(grant_role_args.class, metaDataMap);
    }

    public grant_role_args() {
    }

    public grant_role_args(
      java.lang.String role_name,
      java.lang.String principal_name,
      PrincipalType principal_type,
      java.lang.String grantor,
      PrincipalType grantorType,
      boolean grant_option)
    {
      this();
      this.role_name = role_name;
      this.principal_name = principal_name;
      this.principal_type = principal_type;
      this.grantor = grantor;
      this.grantorType = grantorType;
      this.grant_option = grant_option;
      setGrant_optionIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public grant_role_args(grant_role_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetRole_name()) {
        this.role_name = other.role_name;
      }
      if (other.isSetPrincipal_name()) {
        this.principal_name = other.principal_name;
      }
      if (other.isSetPrincipal_type()) {
        this.principal_type = other.principal_type;
      }
      if (other.isSetGrantor()) {
        this.grantor = other.grantor;
      }
      if (other.isSetGrantorType()) {
        this.grantorType = other.grantorType;
      }
      this.grant_option = other.grant_option;
    }

    public grant_role_args deepCopy() {
      return new grant_role_args(this);
    }

    @Override
    public void clear() {
      this.role_name = null;
      this.principal_name = null;
      this.principal_type = null;
      this.grantor = null;
      this.grantorType = null;
      setGrant_optionIsSet(false);
      this.grant_option = false;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getRole_name() {
      return this.role_name;
    }

    public void setRole_name(@org.apache.thrift.annotation.Nullable java.lang.String role_name) {
      this.role_name = role_name;
    }

    public void unsetRole_name() {
      this.role_name = null;
    }

    /** Returns true if field role_name is set (has been assigned a value) and false otherwise */
    public boolean isSetRole_name() {
      return this.role_name != null;
    }

    public void setRole_nameIsSet(boolean value) {
      if (!value) {
        this.role_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getPrincipal_name() {
      return this.principal_name;
    }

    public void setPrincipal_name(@org.apache.thrift.annotation.Nullable java.lang.String principal_name) {
      this.principal_name = principal_name;
    }

    public void unsetPrincipal_name() {
      this.principal_name = null;
    }

    /** Returns true if field principal_name is set (has been assigned a value) and false otherwise */
    public boolean isSetPrincipal_name() {
      return this.principal_name != null;
    }

    public void setPrincipal_nameIsSet(boolean value) {
      if (!value) {
        this.principal_name = null;
      }
    }

    /**
     * 
     * @see PrincipalType
     */
    @org.apache.thrift.annotation.Nullable
    public PrincipalType getPrincipal_type() {
      return this.principal_type;
    }

    /**
     * 
     * @see PrincipalType
     */
    public void setPrincipal_type(@org.apache.thrift.annotation.Nullable PrincipalType principal_type) {
      this.principal_type = principal_type;
    }

    public void unsetPrincipal_type() {
      this.principal_type = null;
    }

    /** Returns true if field principal_type is set (has been assigned a value) and false otherwise */
    public boolean isSetPrincipal_type() {
      return this.principal_type != null;
    }

    public void setPrincipal_typeIsSet(boolean value) {
      if (!value) {
        this.principal_type = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getGrantor() {
      return this.grantor;
    }

    public void setGrantor(@org.apache.thrift.annotation.Nullable java.lang.String grantor) {
      this.grantor = grantor;
    }

    public void unsetGrantor() {
      this.grantor = null;
    }

    /** Returns true if field grantor is set (has been assigned a value) and false otherwise */
    public boolean isSetGrantor() {
      return this.grantor != null;
    }

    public void setGrantorIsSet(boolean value) {
      if (!value) {
        this.grantor = null;
      }
    }

    /**
     * 
     * @see PrincipalType
     */
    @org.apache.thrift.annotation.Nullable
    public PrincipalType getGrantorType() {
      return this.grantorType;
    }

    /**
     * 
     * @see PrincipalType
     */
    public void setGrantorType(@org.apache.thrift.annotation.Nullable PrincipalType grantorType) {
      this.grantorType = grantorType;
    }

    public void unsetGrantorType() {
      this.grantorType = null;
    }

    /** Returns true if field grantorType is set (has been assigned a value) and false otherwise */
    public boolean isSetGrantorType() {
      return this.grantorType != null;
    }

    public void setGrantorTypeIsSet(boolean value) {
      if (!value) {
        this.grantorType = null;
      }
    }

    public boolean isGrant_option() {
      return this.grant_option;
    }

    public void setGrant_option(boolean grant_option) {
      this.grant_option = grant_option;
      setGrant_optionIsSet(true);
    }

    public void unsetGrant_option() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __GRANT_OPTION_ISSET_ID);
    }

    /** Returns true if field grant_option is set (has been assigned a value) and false otherwise */
    public boolean isSetGrant_option() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __GRANT_OPTION_ISSET_ID);
    }

    public void setGrant_optionIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __GRANT_OPTION_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case ROLE_NAME:
        if (value == null) {
          unsetRole_name();
        } else {
          setRole_name((java.lang.String)value);
        }
        break;

      case PRINCIPAL_NAME:
        if (value == null) {
          unsetPrincipal_name();
        } else {
          setPrincipal_name((java.lang.String)value);
        }
        break;

      case PRINCIPAL_TYPE:
        if (value == null) {
          unsetPrincipal_type();
        } else {
          setPrincipal_type((PrincipalType)value);
        }
        break;

      case GRANTOR:
        if (value == null) {
          unsetGrantor();
        } else {
          setGrantor((java.lang.String)value);
        }
        break;

      case GRANTOR_TYPE:
        if (value == null) {
          unsetGrantorType();
        } else {
          setGrantorType((PrincipalType)value);
        }
        break;

      case GRANT_OPTION:
        if (value == null) {
          unsetGrant_option();
        } else {
          setGrant_option((java.lang.Boolean)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case ROLE_NAME:
        return getRole_name();

      case PRINCIPAL_NAME:
        return getPrincipal_name();

      case PRINCIPAL_TYPE:
        return getPrincipal_type();

      case GRANTOR:
        return getGrantor();

      case GRANTOR_TYPE:
        return getGrantorType();

      case GRANT_OPTION:
        return isGrant_option();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case ROLE_NAME:
        return isSetRole_name();
      case PRINCIPAL_NAME:
        return isSetPrincipal_name();
      case PRINCIPAL_TYPE:
        return isSetPrincipal_type();
      case GRANTOR:
        return isSetGrantor();
      case GRANTOR_TYPE:
        return isSetGrantorType();
      case GRANT_OPTION:
        return isSetGrant_option();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof grant_role_args)
        return this.equals((grant_role_args)that);
      return false;
    }

    public boolean equals(grant_role_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_role_name = true && this.isSetRole_name();
      boolean that_present_role_name = true && that.isSetRole_name();
      if (this_present_role_name || that_present_role_name) {
        if (!(this_present_role_name && that_present_role_name))
          return false;
        if (!this.role_name.equals(that.role_name))
          return false;
      }

      boolean this_present_principal_name = true && this.isSetPrincipal_name();
      boolean that_present_principal_name = true && that.isSetPrincipal_name();
      if (this_present_principal_name || that_present_principal_name) {
        if (!(this_present_principal_name && that_present_principal_name))
          return false;
        if (!this.principal_name.equals(that.principal_name))
          return false;
      }

      boolean this_present_principal_type = true && this.isSetPrincipal_type();
      boolean that_present_principal_type = true && that.isSetPrincipal_type();
      if (this_present_principal_type || that_present_principal_type) {
        if (!(this_present_principal_type && that_present_principal_type))
          return false;
        if (!this.principal_type.equals(that.principal_type))
          return false;
      }

      boolean this_present_grantor = true && this.isSetGrantor();
      boolean that_present_grantor = true && that.isSetGrantor();
      if (this_present_grantor || that_present_grantor) {
        if (!(this_present_grantor && that_present_grantor))
          return false;
        if (!this.grantor.equals(that.grantor))
          return false;
      }

      boolean this_present_grantorType = true && this.isSetGrantorType();
      boolean that_present_grantorType = true && that.isSetGrantorType();
      if (this_present_grantorType || that_present_grantorType) {
        if (!(this_present_grantorType && that_present_grantorType))
          return false;
        if (!this.grantorType.equals(that.grantorType))
          return false;
      }

      boolean this_present_grant_option = true;
      boolean that_present_grant_option = true;
      if (this_present_grant_option || that_present_grant_option) {
        if (!(this_present_grant_option && that_present_grant_option))
          return false;
        if (this.grant_option != that.grant_option)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRole_name()) ? 131071 : 524287);
      if (isSetRole_name())
        hashCode = hashCode * 8191 + role_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetPrincipal_name()) ? 131071 : 524287);
      if (isSetPrincipal_name())
        hashCode = hashCode * 8191 + principal_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetPrincipal_type()) ? 131071 : 524287);
      if (isSetPrincipal_type())
        hashCode = hashCode * 8191 + principal_type.getValue();

      hashCode = hashCode * 8191 + ((isSetGrantor()) ? 131071 : 524287);
      if (isSetGrantor())
        hashCode = hashCode * 8191 + grantor.hashCode();

      hashCode = hashCode * 8191 + ((isSetGrantorType()) ? 131071 : 524287);
      if (isSetGrantorType())
        hashCode = hashCode * 8191 + grantorType.getValue();

      hashCode = hashCode * 8191 + ((grant_option) ? 131071 : 524287);

      return hashCode;
    }

    @Override
    public int compareTo(grant_role_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRole_name(), other.isSetRole_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRole_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.role_name, other.role_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetPrincipal_name(), other.isSetPrincipal_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPrincipal_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.principal_name, other.principal_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetPrincipal_type(), other.isSetPrincipal_type());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPrincipal_type()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.principal_type, other.principal_type);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetGrantor(), other.isSetGrantor());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetGrantor()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.grantor, other.grantor);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetGrantorType(), other.isSetGrantorType());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetGrantorType()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.grantorType, other.grantorType);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetGrant_option(), other.isSetGrant_option());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetGrant_option()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.grant_option, other.grant_option);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("grant_role_args(");
      boolean first = true;

      sb.append("role_name:");
      if (this.role_name == null) {
        sb.append("null");
      } else {
        sb.append(this.role_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("principal_name:");
      if (this.principal_name == null) {
        sb.append("null");
      } else {
        sb.append(this.principal_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("principal_type:");
      if (this.principal_type == null) {
        sb.append("null");
      } else {
        sb.append(this.principal_type);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("grantor:");
      if (this.grantor == null) {
        sb.append("null");
      } else {
        sb.append(this.grantor);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("grantorType:");
      if (this.grantorType == null) {
        sb.append("null");
      } else {
        sb.append(this.grantorType);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("grant_option:");
      sb.append(this.grant_option);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class grant_role_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public grant_role_argsStandardScheme getScheme() {
        return new grant_role_argsStandardScheme();
      }
    }

    private static class grant_role_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<grant_role_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, grant_role_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // ROLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.role_name = iprot.readString();
                struct.setRole_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // PRINCIPAL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.principal_name = iprot.readString();
                struct.setPrincipal_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // PRINCIPAL_TYPE
              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
                struct.principal_type = org.apache.hadoop.hive.metastore.api.PrincipalType.findByValue(iprot.readI32());
                struct.setPrincipal_typeIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // GRANTOR
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.grantor = iprot.readString();
                struct.setGrantorIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 5: // GRANTOR_TYPE
              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
                struct.grantorType = org.apache.hadoop.hive.metastore.api.PrincipalType.findByValue(iprot.readI32());
                struct.setGrantorTypeIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 6: // GRANT_OPTION
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.grant_option = iprot.readBool();
                struct.setGrant_optionIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, grant_role_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.role_name != null) {
          oprot.writeFieldBegin(ROLE_NAME_FIELD_DESC);
          oprot.writeString(struct.role_name);
          oprot.writeFieldEnd();
        }
        if (struct.principal_name != null) {
          oprot.writeFieldBegin(PRINCIPAL_NAME_FIELD_DESC);
          oprot.writeString(struct.principal_name);
          oprot.writeFieldEnd();
        }
        if (struct.principal_type != null) {
          oprot.writeFieldBegin(PRINCIPAL_TYPE_FIELD_DESC);
          oprot.writeI32(struct.principal_type.getValue());
          oprot.writeFieldEnd();
        }
        if (struct.grantor != null) {
          oprot.writeFieldBegin(GRANTOR_FIELD_DESC);
          oprot.writeString(struct.grantor);
          oprot.writeFieldEnd();
        }
        if (struct.grantorType != null) {
          oprot.writeFieldBegin(GRANTOR_TYPE_FIELD_DESC);
          oprot.writeI32(struct.grantorType.getValue());
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(GRANT_OPTION_FIELD_DESC);
        oprot.writeBool(struct.grant_option);
        oprot.writeFieldEnd();
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class grant_role_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public grant_role_argsTupleScheme getScheme() {
        return new grant_role_argsTupleScheme();
      }
    }

    private static class grant_role_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<grant_role_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, grant_role_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRole_name()) {
          optionals.set(0);
        }
        if (struct.isSetPrincipal_name()) {
          optionals.set(1);
        }
        if (struct.isSetPrincipal_type()) {
          optionals.set(2);
        }
        if (struct.isSetGrantor()) {
          optionals.set(3);
        }
        if (struct.isSetGrantorType()) {
          optionals.set(4);
        }
        if (struct.isSetGrant_option()) {
          optionals.set(5);
        }
        oprot.writeBitSet(optionals, 6);
        if (struct.isSetRole_name()) {
          oprot.writeString(struct.role_name);
        }
        if (struct.isSetPrincipal_name()) {
          oprot.writeString(struct.principal_name);
        }
        if (struct.isSetPrincipal_type()) {
          oprot.writeI32(struct.principal_type.getValue());
        }
        if (struct.isSetGrantor()) {
          oprot.writeString(struct.grantor);
        }
        if (struct.isSetGrantorType()) {
          oprot.writeI32(struct.grantorType.getValue());
        }
        if (struct.isSetGrant_option()) {
          oprot.writeBool(struct.grant_option);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, grant_role_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(6);
        if (incoming.get(0)) {
          struct.role_name = iprot.readString();
          struct.setRole_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.principal_name = iprot.readString();
          struct.setPrincipal_nameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.principal_type = org.apache.hadoop.hive.metastore.api.PrincipalType.findByValue(iprot.readI32());
          struct.setPrincipal_typeIsSet(true);
        }
        if (incoming.get(3)) {
          struct.grantor = iprot.readString();
          struct.setGrantorIsSet(true);
        }
        if (incoming.get(4)) {
          struct.grantorType = org.apache.hadoop.hive.metastore.api.PrincipalType.findByValue(iprot.readI32());
          struct.setGrantorTypeIsSet(true);
        }
        if (incoming.get(5)) {
          struct.grant_option = iprot.readBool();
          struct.setGrant_optionIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class grant_role_result implements org.apache.thrift.TBase<grant_role_result, grant_role_result._Fields>, java.io.Serializable, Cloneable, Comparable<grant_role_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("grant_role_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new grant_role_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new grant_role_resultTupleSchemeFactory();

    private boolean success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(grant_role_result.class, metaDataMap);
    }

    public grant_role_result() {
    }

    public grant_role_result(
      boolean success,
      MetaException o1)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public grant_role_result(grant_role_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public grant_role_result deepCopy() {
      return new grant_role_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = false;
      this.o1 = null;
    }

    public boolean isSuccess() {
      return this.success;
    }

    public void setSuccess(boolean success) {
      this.success = success;
      setSuccessIsSet(true);
    }

    public void unsetSuccess() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.lang.Boolean)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return isSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof grant_role_result)
        return this.equals((grant_role_result)that);
      return false;
    }

    public boolean equals(grant_role_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(grant_role_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("grant_role_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class grant_role_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public grant_role_resultStandardScheme getScheme() {
        return new grant_role_resultStandardScheme();
      }
    }

    private static class grant_role_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<grant_role_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, grant_role_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.success = iprot.readBool();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, grant_role_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeBool(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class grant_role_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public grant_role_resultTupleScheme getScheme() {
        return new grant_role_resultTupleScheme();
      }
    }

    private static class grant_role_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<grant_role_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, grant_role_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          oprot.writeBool(struct.success);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, grant_role_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.success = iprot.readBool();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class revoke_role_args implements org.apache.thrift.TBase<revoke_role_args, revoke_role_args._Fields>, java.io.Serializable, Cloneable, Comparable<revoke_role_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("revoke_role_args");

    private static final org.apache.thrift.protocol.TField ROLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("role_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField PRINCIPAL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("principal_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField PRINCIPAL_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("principal_type", org.apache.thrift.protocol.TType.I32, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new revoke_role_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new revoke_role_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String role_name; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String principal_name; // required
    private @org.apache.thrift.annotation.Nullable PrincipalType principal_type; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      ROLE_NAME((short)1, "role_name"),
      PRINCIPAL_NAME((short)2, "principal_name"),
      /**
       * 
       * @see PrincipalType
       */
      PRINCIPAL_TYPE((short)3, "principal_type");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // ROLE_NAME
            return ROLE_NAME;
          case 2: // PRINCIPAL_NAME
            return PRINCIPAL_NAME;
          case 3: // PRINCIPAL_TYPE
            return PRINCIPAL_TYPE;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.ROLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("role_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PRINCIPAL_NAME, new org.apache.thrift.meta_data.FieldMetaData("principal_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PRINCIPAL_TYPE, new org.apache.thrift.meta_data.FieldMetaData("principal_type", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, PrincipalType.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(revoke_role_args.class, metaDataMap);
    }

    public revoke_role_args() {
    }

    public revoke_role_args(
      java.lang.String role_name,
      java.lang.String principal_name,
      PrincipalType principal_type)
    {
      this();
      this.role_name = role_name;
      this.principal_name = principal_name;
      this.principal_type = principal_type;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public revoke_role_args(revoke_role_args other) {
      if (other.isSetRole_name()) {
        this.role_name = other.role_name;
      }
      if (other.isSetPrincipal_name()) {
        this.principal_name = other.principal_name;
      }
      if (other.isSetPrincipal_type()) {
        this.principal_type = other.principal_type;
      }
    }

    public revoke_role_args deepCopy() {
      return new revoke_role_args(this);
    }

    @Override
    public void clear() {
      this.role_name = null;
      this.principal_name = null;
      this.principal_type = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getRole_name() {
      return this.role_name;
    }

    public void setRole_name(@org.apache.thrift.annotation.Nullable java.lang.String role_name) {
      this.role_name = role_name;
    }

    public void unsetRole_name() {
      this.role_name = null;
    }

    /** Returns true if field role_name is set (has been assigned a value) and false otherwise */
    public boolean isSetRole_name() {
      return this.role_name != null;
    }

    public void setRole_nameIsSet(boolean value) {
      if (!value) {
        this.role_name = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getPrincipal_name() {
      return this.principal_name;
    }

    public void setPrincipal_name(@org.apache.thrift.annotation.Nullable java.lang.String principal_name) {
      this.principal_name = principal_name;
    }

    public void unsetPrincipal_name() {
      this.principal_name = null;
    }

    /** Returns true if field principal_name is set (has been assigned a value) and false otherwise */
    public boolean isSetPrincipal_name() {
      return this.principal_name != null;
    }

    public void setPrincipal_nameIsSet(boolean value) {
      if (!value) {
        this.principal_name = null;
      }
    }

    /**
     * 
     * @see PrincipalType
     */
    @org.apache.thrift.annotation.Nullable
    public PrincipalType getPrincipal_type() {
      return this.principal_type;
    }

    /**
     * 
     * @see PrincipalType
     */
    public void setPrincipal_type(@org.apache.thrift.annotation.Nullable PrincipalType principal_type) {
      this.principal_type = principal_type;
    }

    public void unsetPrincipal_type() {
      this.principal_type = null;
    }

    /** Returns true if field principal_type is set (has been assigned a value) and false otherwise */
    public boolean isSetPrincipal_type() {
      return this.principal_type != null;
    }

    public void setPrincipal_typeIsSet(boolean value) {
      if (!value) {
        this.principal_type = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case ROLE_NAME:
        if (value == null) {
          unsetRole_name();
        } else {
          setRole_name((java.lang.String)value);
        }
        break;

      case PRINCIPAL_NAME:
        if (value == null) {
          unsetPrincipal_name();
        } else {
          setPrincipal_name((java.lang.String)value);
        }
        break;

      case PRINCIPAL_TYPE:
        if (value == null) {
          unsetPrincipal_type();
        } else {
          setPrincipal_type((PrincipalType)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case ROLE_NAME:
        return getRole_name();

      case PRINCIPAL_NAME:
        return getPrincipal_name();

      case PRINCIPAL_TYPE:
        return getPrincipal_type();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case ROLE_NAME:
        return isSetRole_name();
      case PRINCIPAL_NAME:
        return isSetPrincipal_name();
      case PRINCIPAL_TYPE:
        return isSetPrincipal_type();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof revoke_role_args)
        return this.equals((revoke_role_args)that);
      return false;
    }

    public boolean equals(revoke_role_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_role_name = true && this.isSetRole_name();
      boolean that_present_role_name = true && that.isSetRole_name();
      if (this_present_role_name || that_present_role_name) {
        if (!(this_present_role_name && that_present_role_name))
          return false;
        if (!this.role_name.equals(that.role_name))
          return false;
      }

      boolean this_present_principal_name = true && this.isSetPrincipal_name();
      boolean that_present_principal_name = true && that.isSetPrincipal_name();
      if (this_present_principal_name || that_present_principal_name) {
        if (!(this_present_principal_name && that_present_principal_name))
          return false;
        if (!this.principal_name.equals(that.principal_name))
          return false;
      }

      boolean this_present_principal_type = true && this.isSetPrincipal_type();
      boolean that_present_principal_type = true && that.isSetPrincipal_type();
      if (this_present_principal_type || that_present_principal_type) {
        if (!(this_present_principal_type && that_present_principal_type))
          return false;
        if (!this.principal_type.equals(that.principal_type))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRole_name()) ? 131071 : 524287);
      if (isSetRole_name())
        hashCode = hashCode * 8191 + role_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetPrincipal_name()) ? 131071 : 524287);
      if (isSetPrincipal_name())
        hashCode = hashCode * 8191 + principal_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetPrincipal_type()) ? 131071 : 524287);
      if (isSetPrincipal_type())
        hashCode = hashCode * 8191 + principal_type.getValue();

      return hashCode;
    }

    @Override
    public int compareTo(revoke_role_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRole_name(), other.isSetRole_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRole_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.role_name, other.role_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetPrincipal_name(), other.isSetPrincipal_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPrincipal_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.principal_name, other.principal_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetPrincipal_type(), other.isSetPrincipal_type());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPrincipal_type()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.principal_type, other.principal_type);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("revoke_role_args(");
      boolean first = true;

      sb.append("role_name:");
      if (this.role_name == null) {
        sb.append("null");
      } else {
        sb.append(this.role_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("principal_name:");
      if (this.principal_name == null) {
        sb.append("null");
      } else {
        sb.append(this.principal_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("principal_type:");
      if (this.principal_type == null) {
        sb.append("null");
      } else {
        sb.append(this.principal_type);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class revoke_role_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public revoke_role_argsStandardScheme getScheme() {
        return new revoke_role_argsStandardScheme();
      }
    }

    private static class revoke_role_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<revoke_role_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, revoke_role_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // ROLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.role_name = iprot.readString();
                struct.setRole_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // PRINCIPAL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.principal_name = iprot.readString();
                struct.setPrincipal_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // PRINCIPAL_TYPE
              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
                struct.principal_type = org.apache.hadoop.hive.metastore.api.PrincipalType.findByValue(iprot.readI32());
                struct.setPrincipal_typeIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, revoke_role_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.role_name != null) {
          oprot.writeFieldBegin(ROLE_NAME_FIELD_DESC);
          oprot.writeString(struct.role_name);
          oprot.writeFieldEnd();
        }
        if (struct.principal_name != null) {
          oprot.writeFieldBegin(PRINCIPAL_NAME_FIELD_DESC);
          oprot.writeString(struct.principal_name);
          oprot.writeFieldEnd();
        }
        if (struct.principal_type != null) {
          oprot.writeFieldBegin(PRINCIPAL_TYPE_FIELD_DESC);
          oprot.writeI32(struct.principal_type.getValue());
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class revoke_role_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public revoke_role_argsTupleScheme getScheme() {
        return new revoke_role_argsTupleScheme();
      }
    }

    private static class revoke_role_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<revoke_role_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, revoke_role_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRole_name()) {
          optionals.set(0);
        }
        if (struct.isSetPrincipal_name()) {
          optionals.set(1);
        }
        if (struct.isSetPrincipal_type()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetRole_name()) {
          oprot.writeString(struct.role_name);
        }
        if (struct.isSetPrincipal_name()) {
          oprot.writeString(struct.principal_name);
        }
        if (struct.isSetPrincipal_type()) {
          oprot.writeI32(struct.principal_type.getValue());
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, revoke_role_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.role_name = iprot.readString();
          struct.setRole_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.principal_name = iprot.readString();
          struct.setPrincipal_nameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.principal_type = org.apache.hadoop.hive.metastore.api.PrincipalType.findByValue(iprot.readI32());
          struct.setPrincipal_typeIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class revoke_role_result implements org.apache.thrift.TBase<revoke_role_result, revoke_role_result._Fields>, java.io.Serializable, Cloneable, Comparable<revoke_role_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("revoke_role_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new revoke_role_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new revoke_role_resultTupleSchemeFactory();

    private boolean success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(revoke_role_result.class, metaDataMap);
    }

    public revoke_role_result() {
    }

    public revoke_role_result(
      boolean success,
      MetaException o1)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public revoke_role_result(revoke_role_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public revoke_role_result deepCopy() {
      return new revoke_role_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = false;
      this.o1 = null;
    }

    public boolean isSuccess() {
      return this.success;
    }

    public void setSuccess(boolean success) {
      this.success = success;
      setSuccessIsSet(true);
    }

    public void unsetSuccess() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.lang.Boolean)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return isSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof revoke_role_result)
        return this.equals((revoke_role_result)that);
      return false;
    }

    public boolean equals(revoke_role_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(revoke_role_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("revoke_role_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class revoke_role_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public revoke_role_resultStandardScheme getScheme() {
        return new revoke_role_resultStandardScheme();
      }
    }

    private static class revoke_role_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<revoke_role_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, revoke_role_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.success = iprot.readBool();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, revoke_role_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeBool(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class revoke_role_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public revoke_role_resultTupleScheme getScheme() {
        return new revoke_role_resultTupleScheme();
      }
    }

    private static class revoke_role_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<revoke_role_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, revoke_role_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          oprot.writeBool(struct.success);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, revoke_role_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.success = iprot.readBool();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class list_roles_args implements org.apache.thrift.TBase<list_roles_args, list_roles_args._Fields>, java.io.Serializable, Cloneable, Comparable<list_roles_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("list_roles_args");

    private static final org.apache.thrift.protocol.TField PRINCIPAL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("principal_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField PRINCIPAL_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("principal_type", org.apache.thrift.protocol.TType.I32, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new list_roles_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new list_roles_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String principal_name; // required
    private @org.apache.thrift.annotation.Nullable PrincipalType principal_type; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      PRINCIPAL_NAME((short)1, "principal_name"),
      /**
       * 
       * @see PrincipalType
       */
      PRINCIPAL_TYPE((short)2, "principal_type");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // PRINCIPAL_NAME
            return PRINCIPAL_NAME;
          case 2: // PRINCIPAL_TYPE
            return PRINCIPAL_TYPE;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.PRINCIPAL_NAME, new org.apache.thrift.meta_data.FieldMetaData("principal_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PRINCIPAL_TYPE, new org.apache.thrift.meta_data.FieldMetaData("principal_type", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, PrincipalType.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(list_roles_args.class, metaDataMap);
    }

    public list_roles_args() {
    }

    public list_roles_args(
      java.lang.String principal_name,
      PrincipalType principal_type)
    {
      this();
      this.principal_name = principal_name;
      this.principal_type = principal_type;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public list_roles_args(list_roles_args other) {
      if (other.isSetPrincipal_name()) {
        this.principal_name = other.principal_name;
      }
      if (other.isSetPrincipal_type()) {
        this.principal_type = other.principal_type;
      }
    }

    public list_roles_args deepCopy() {
      return new list_roles_args(this);
    }

    @Override
    public void clear() {
      this.principal_name = null;
      this.principal_type = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getPrincipal_name() {
      return this.principal_name;
    }

    public void setPrincipal_name(@org.apache.thrift.annotation.Nullable java.lang.String principal_name) {
      this.principal_name = principal_name;
    }

    public void unsetPrincipal_name() {
      this.principal_name = null;
    }

    /** Returns true if field principal_name is set (has been assigned a value) and false otherwise */
    public boolean isSetPrincipal_name() {
      return this.principal_name != null;
    }

    public void setPrincipal_nameIsSet(boolean value) {
      if (!value) {
        this.principal_name = null;
      }
    }

    /**
     * 
     * @see PrincipalType
     */
    @org.apache.thrift.annotation.Nullable
    public PrincipalType getPrincipal_type() {
      return this.principal_type;
    }

    /**
     * 
     * @see PrincipalType
     */
    public void setPrincipal_type(@org.apache.thrift.annotation.Nullable PrincipalType principal_type) {
      this.principal_type = principal_type;
    }

    public void unsetPrincipal_type() {
      this.principal_type = null;
    }

    /** Returns true if field principal_type is set (has been assigned a value) and false otherwise */
    public boolean isSetPrincipal_type() {
      return this.principal_type != null;
    }

    public void setPrincipal_typeIsSet(boolean value) {
      if (!value) {
        this.principal_type = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case PRINCIPAL_NAME:
        if (value == null) {
          unsetPrincipal_name();
        } else {
          setPrincipal_name((java.lang.String)value);
        }
        break;

      case PRINCIPAL_TYPE:
        if (value == null) {
          unsetPrincipal_type();
        } else {
          setPrincipal_type((PrincipalType)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case PRINCIPAL_NAME:
        return getPrincipal_name();

      case PRINCIPAL_TYPE:
        return getPrincipal_type();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case PRINCIPAL_NAME:
        return isSetPrincipal_name();
      case PRINCIPAL_TYPE:
        return isSetPrincipal_type();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof list_roles_args)
        return this.equals((list_roles_args)that);
      return false;
    }

    public boolean equals(list_roles_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_principal_name = true && this.isSetPrincipal_name();
      boolean that_present_principal_name = true && that.isSetPrincipal_name();
      if (this_present_principal_name || that_present_principal_name) {
        if (!(this_present_principal_name && that_present_principal_name))
          return false;
        if (!this.principal_name.equals(that.principal_name))
          return false;
      }

      boolean this_present_principal_type = true && this.isSetPrincipal_type();
      boolean that_present_principal_type = true && that.isSetPrincipal_type();
      if (this_present_principal_type || that_present_principal_type) {
        if (!(this_present_principal_type && that_present_principal_type))
          return false;
        if (!this.principal_type.equals(that.principal_type))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetPrincipal_name()) ? 131071 : 524287);
      if (isSetPrincipal_name())
        hashCode = hashCode * 8191 + principal_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetPrincipal_type()) ? 131071 : 524287);
      if (isSetPrincipal_type())
        hashCode = hashCode * 8191 + principal_type.getValue();

      return hashCode;
    }

    @Override
    public int compareTo(list_roles_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetPrincipal_name(), other.isSetPrincipal_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPrincipal_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.principal_name, other.principal_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetPrincipal_type(), other.isSetPrincipal_type());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPrincipal_type()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.principal_type, other.principal_type);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("list_roles_args(");
      boolean first = true;

      sb.append("principal_name:");
      if (this.principal_name == null) {
        sb.append("null");
      } else {
        sb.append(this.principal_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("principal_type:");
      if (this.principal_type == null) {
        sb.append("null");
      } else {
        sb.append(this.principal_type);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class list_roles_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public list_roles_argsStandardScheme getScheme() {
        return new list_roles_argsStandardScheme();
      }
    }

    private static class list_roles_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<list_roles_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, list_roles_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // PRINCIPAL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.principal_name = iprot.readString();
                struct.setPrincipal_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // PRINCIPAL_TYPE
              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
                struct.principal_type = org.apache.hadoop.hive.metastore.api.PrincipalType.findByValue(iprot.readI32());
                struct.setPrincipal_typeIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, list_roles_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.principal_name != null) {
          oprot.writeFieldBegin(PRINCIPAL_NAME_FIELD_DESC);
          oprot.writeString(struct.principal_name);
          oprot.writeFieldEnd();
        }
        if (struct.principal_type != null) {
          oprot.writeFieldBegin(PRINCIPAL_TYPE_FIELD_DESC);
          oprot.writeI32(struct.principal_type.getValue());
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class list_roles_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public list_roles_argsTupleScheme getScheme() {
        return new list_roles_argsTupleScheme();
      }
    }

    private static class list_roles_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<list_roles_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, list_roles_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetPrincipal_name()) {
          optionals.set(0);
        }
        if (struct.isSetPrincipal_type()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetPrincipal_name()) {
          oprot.writeString(struct.principal_name);
        }
        if (struct.isSetPrincipal_type()) {
          oprot.writeI32(struct.principal_type.getValue());
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, list_roles_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.principal_name = iprot.readString();
          struct.setPrincipal_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.principal_type = org.apache.hadoop.hive.metastore.api.PrincipalType.findByValue(iprot.readI32());
          struct.setPrincipal_typeIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class list_roles_result implements org.apache.thrift.TBase<list_roles_result, list_roles_result._Fields>, java.io.Serializable, Cloneable, Comparable<list_roles_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("list_roles_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new list_roles_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new list_roles_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<Role> success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Role.class))));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(list_roles_result.class, metaDataMap);
    }

    public list_roles_result() {
    }

    public list_roles_result(
      java.util.List<Role> success,
      MetaException o1)
    {
      this();
      this.success = success;
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public list_roles_result(list_roles_result other) {
      if (other.isSetSuccess()) {
        java.util.List<Role> __this__success = new java.util.ArrayList<Role>(other.success.size());
        for (Role other_element : other.success) {
          __this__success.add(new Role(other_element));
        }
        this.success = __this__success;
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public list_roles_result deepCopy() {
      return new list_roles_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<Role> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(Role elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<Role>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<Role> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<Role> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<Role>)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof list_roles_result)
        return this.equals((list_roles_result)that);
      return false;
    }

    public boolean equals(list_roles_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(list_roles_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("list_roles_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class list_roles_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public list_roles_resultStandardScheme getScheme() {
        return new list_roles_resultStandardScheme();
      }
    }

    private static class list_roles_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<list_roles_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, list_roles_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1420 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<Role>(_list1420.size);
                  @org.apache.thrift.annotation.Nullable Role _elem1421;
                  for (int _i1422 = 0; _i1422 < _list1420.size; ++_i1422)
                  {
                    _elem1421 = new Role();
                    _elem1421.read(iprot);
                    struct.success.add(_elem1421);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, list_roles_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
            for (Role _iter1423 : struct.success)
            {
              _iter1423.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class list_roles_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public list_roles_resultTupleScheme getScheme() {
        return new list_roles_resultTupleScheme();
      }
    }

    private static class list_roles_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<list_roles_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, list_roles_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (Role _iter1424 : struct.success)
            {
              _iter1424.write(oprot);
            }
          }
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, list_roles_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list1425 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
            struct.success = new java.util.ArrayList<Role>(_list1425.size);
            @org.apache.thrift.annotation.Nullable Role _elem1426;
            for (int _i1427 = 0; _i1427 < _list1425.size; ++_i1427)
            {
              _elem1426 = new Role();
              _elem1426.read(iprot);
              struct.success.add(_elem1426);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class grant_revoke_role_args implements org.apache.thrift.TBase<grant_revoke_role_args, grant_revoke_role_args._Fields>, java.io.Serializable, Cloneable, Comparable<grant_revoke_role_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("grant_revoke_role_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new grant_revoke_role_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new grant_revoke_role_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable GrantRevokeRoleRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GrantRevokeRoleRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(grant_revoke_role_args.class, metaDataMap);
    }

    public grant_revoke_role_args() {
    }

    public grant_revoke_role_args(
      GrantRevokeRoleRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public grant_revoke_role_args(grant_revoke_role_args other) {
      if (other.isSetRequest()) {
        this.request = new GrantRevokeRoleRequest(other.request);
      }
    }

    public grant_revoke_role_args deepCopy() {
      return new grant_revoke_role_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    @org.apache.thrift.annotation.Nullable
    public GrantRevokeRoleRequest getRequest() {
      return this.request;
    }

    public void setRequest(@org.apache.thrift.annotation.Nullable GrantRevokeRoleRequest request) {
      this.request = request;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((GrantRevokeRoleRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof grant_revoke_role_args)
        return this.equals((grant_revoke_role_args)that);
      return false;
    }

    public boolean equals(grant_revoke_role_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRequest()) ? 131071 : 524287);
      if (isSetRequest())
        hashCode = hashCode * 8191 + request.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(grant_revoke_role_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRequest(), other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("grant_revoke_role_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class grant_revoke_role_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public grant_revoke_role_argsStandardScheme getScheme() {
        return new grant_revoke_role_argsStandardScheme();
      }
    }

    private static class grant_revoke_role_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<grant_revoke_role_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, grant_revoke_role_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new GrantRevokeRoleRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, grant_revoke_role_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class grant_revoke_role_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public grant_revoke_role_argsTupleScheme getScheme() {
        return new grant_revoke_role_argsTupleScheme();
      }
    }

    private static class grant_revoke_role_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<grant_revoke_role_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, grant_revoke_role_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, grant_revoke_role_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new GrantRevokeRoleRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class grant_revoke_role_result implements org.apache.thrift.TBase<grant_revoke_role_result, grant_revoke_role_result._Fields>, java.io.Serializable, Cloneable, Comparable<grant_revoke_role_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("grant_revoke_role_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new grant_revoke_role_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new grant_revoke_role_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable GrantRevokeRoleResponse success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GrantRevokeRoleResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(grant_revoke_role_result.class, metaDataMap);
    }

    public grant_revoke_role_result() {
    }

    public grant_revoke_role_result(
      GrantRevokeRoleResponse success,
      MetaException o1)
    {
      this();
      this.success = success;
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public grant_revoke_role_result(grant_revoke_role_result other) {
      if (other.isSetSuccess()) {
        this.success = new GrantRevokeRoleResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public grant_revoke_role_result deepCopy() {
      return new grant_revoke_role_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public GrantRevokeRoleResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable GrantRevokeRoleResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((GrantRevokeRoleResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof grant_revoke_role_result)
        return this.equals((grant_revoke_role_result)that);
      return false;
    }

    public boolean equals(grant_revoke_role_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(grant_revoke_role_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("grant_revoke_role_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class grant_revoke_role_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public grant_revoke_role_resultStandardScheme getScheme() {
        return new grant_revoke_role_resultStandardScheme();
      }
    }

    private static class grant_revoke_role_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<grant_revoke_role_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, grant_revoke_role_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new GrantRevokeRoleResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, grant_revoke_role_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class grant_revoke_role_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public grant_revoke_role_resultTupleScheme getScheme() {
        return new grant_revoke_role_resultTupleScheme();
      }
    }

    private static class grant_revoke_role_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<grant_revoke_role_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, grant_revoke_role_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, grant_revoke_role_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.success = new GrantRevokeRoleResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_principals_in_role_args implements org.apache.thrift.TBase<get_principals_in_role_args, get_principals_in_role_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_principals_in_role_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_principals_in_role_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_principals_in_role_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_principals_in_role_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable GetPrincipalsInRoleRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetPrincipalsInRoleRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_principals_in_role_args.class, metaDataMap);
    }

    public get_principals_in_role_args() {
    }

    public get_principals_in_role_args(
      GetPrincipalsInRoleRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_principals_in_role_args(get_principals_in_role_args other) {
      if (other.isSetRequest()) {
        this.request = new GetPrincipalsInRoleRequest(other.request);
      }
    }

    public get_principals_in_role_args deepCopy() {
      return new get_principals_in_role_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    @org.apache.thrift.annotation.Nullable
    public GetPrincipalsInRoleRequest getRequest() {
      return this.request;
    }

    public void setRequest(@org.apache.thrift.annotation.Nullable GetPrincipalsInRoleRequest request) {
      this.request = request;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((GetPrincipalsInRoleRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_principals_in_role_args)
        return this.equals((get_principals_in_role_args)that);
      return false;
    }

    public boolean equals(get_principals_in_role_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRequest()) ? 131071 : 524287);
      if (isSetRequest())
        hashCode = hashCode * 8191 + request.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_principals_in_role_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRequest(), other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_principals_in_role_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_principals_in_role_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_principals_in_role_argsStandardScheme getScheme() {
        return new get_principals_in_role_argsStandardScheme();
      }
    }

    private static class get_principals_in_role_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_principals_in_role_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_principals_in_role_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new GetPrincipalsInRoleRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_principals_in_role_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_principals_in_role_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_principals_in_role_argsTupleScheme getScheme() {
        return new get_principals_in_role_argsTupleScheme();
      }
    }

    private static class get_principals_in_role_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_principals_in_role_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_principals_in_role_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_principals_in_role_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new GetPrincipalsInRoleRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_principals_in_role_result implements org.apache.thrift.TBase<get_principals_in_role_result, get_principals_in_role_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_principals_in_role_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_principals_in_role_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_principals_in_role_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_principals_in_role_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable GetPrincipalsInRoleResponse success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetPrincipalsInRoleResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_principals_in_role_result.class, metaDataMap);
    }

    public get_principals_in_role_result() {
    }

    public get_principals_in_role_result(
      GetPrincipalsInRoleResponse success,
      MetaException o1)
    {
      this();
      this.success = success;
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_principals_in_role_result(get_principals_in_role_result other) {
      if (other.isSetSuccess()) {
        this.success = new GetPrincipalsInRoleResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public get_principals_in_role_result deepCopy() {
      return new get_principals_in_role_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public GetPrincipalsInRoleResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable GetPrincipalsInRoleResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((GetPrincipalsInRoleResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_principals_in_role_result)
        return this.equals((get_principals_in_role_result)that);
      return false;
    }

    public boolean equals(get_principals_in_role_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_principals_in_role_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_principals_in_role_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_principals_in_role_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_principals_in_role_resultStandardScheme getScheme() {
        return new get_principals_in_role_resultStandardScheme();
      }
    }

    private static class get_principals_in_role_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_principals_in_role_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_principals_in_role_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new GetPrincipalsInRoleResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_principals_in_role_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_principals_in_role_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_principals_in_role_resultTupleScheme getScheme() {
        return new get_principals_in_role_resultTupleScheme();
      }
    }

    private static class get_principals_in_role_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_principals_in_role_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_principals_in_role_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_principals_in_role_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.success = new GetPrincipalsInRoleResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_role_grants_for_principal_args implements org.apache.thrift.TBase<get_role_grants_for_principal_args, get_role_grants_for_principal_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_role_grants_for_principal_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_role_grants_for_principal_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_role_grants_for_principal_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_role_grants_for_principal_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable GetRoleGrantsForPrincipalRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetRoleGrantsForPrincipalRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_role_grants_for_principal_args.class, metaDataMap);
    }

    public get_role_grants_for_principal_args() {
    }

    public get_role_grants_for_principal_args(
      GetRoleGrantsForPrincipalRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_role_grants_for_principal_args(get_role_grants_for_principal_args other) {
      if (other.isSetRequest()) {
        this.request = new GetRoleGrantsForPrincipalRequest(other.request);
      }
    }

    public get_role_grants_for_principal_args deepCopy() {
      return new get_role_grants_for_principal_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    @org.apache.thrift.annotation.Nullable
    public GetRoleGrantsForPrincipalRequest getRequest() {
      return this.request;
    }

    public void setRequest(@org.apache.thrift.annotation.Nullable GetRoleGrantsForPrincipalRequest request) {
      this.request = request;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((GetRoleGrantsForPrincipalRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_role_grants_for_principal_args)
        return this.equals((get_role_grants_for_principal_args)that);
      return false;
    }

    public boolean equals(get_role_grants_for_principal_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRequest()) ? 131071 : 524287);
      if (isSetRequest())
        hashCode = hashCode * 8191 + request.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_role_grants_for_principal_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRequest(), other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_role_grants_for_principal_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_role_grants_for_principal_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_role_grants_for_principal_argsStandardScheme getScheme() {
        return new get_role_grants_for_principal_argsStandardScheme();
      }
    }

    private static class get_role_grants_for_principal_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_role_grants_for_principal_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_role_grants_for_principal_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new GetRoleGrantsForPrincipalRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_role_grants_for_principal_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_role_grants_for_principal_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_role_grants_for_principal_argsTupleScheme getScheme() {
        return new get_role_grants_for_principal_argsTupleScheme();
      }
    }

    private static class get_role_grants_for_principal_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_role_grants_for_principal_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_role_grants_for_principal_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_role_grants_for_principal_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new GetRoleGrantsForPrincipalRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_role_grants_for_principal_result implements org.apache.thrift.TBase<get_role_grants_for_principal_result, get_role_grants_for_principal_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_role_grants_for_principal_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_role_grants_for_principal_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_role_grants_for_principal_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_role_grants_for_principal_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable GetRoleGrantsForPrincipalResponse success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetRoleGrantsForPrincipalResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_role_grants_for_principal_result.class, metaDataMap);
    }

    public get_role_grants_for_principal_result() {
    }

    public get_role_grants_for_principal_result(
      GetRoleGrantsForPrincipalResponse success,
      MetaException o1)
    {
      this();
      this.success = success;
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_role_grants_for_principal_result(get_role_grants_for_principal_result other) {
      if (other.isSetSuccess()) {
        this.success = new GetRoleGrantsForPrincipalResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public get_role_grants_for_principal_result deepCopy() {
      return new get_role_grants_for_principal_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public GetRoleGrantsForPrincipalResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable GetRoleGrantsForPrincipalResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((GetRoleGrantsForPrincipalResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_role_grants_for_principal_result)
        return this.equals((get_role_grants_for_principal_result)that);
      return false;
    }

    public boolean equals(get_role_grants_for_principal_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_role_grants_for_principal_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_role_grants_for_principal_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_role_grants_for_principal_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_role_grants_for_principal_resultStandardScheme getScheme() {
        return new get_role_grants_for_principal_resultStandardScheme();
      }
    }

    private static class get_role_grants_for_principal_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_role_grants_for_principal_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_role_grants_for_principal_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new GetRoleGrantsForPrincipalResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_role_grants_for_principal_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_role_grants_for_principal_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_role_grants_for_principal_resultTupleScheme getScheme() {
        return new get_role_grants_for_principal_resultTupleScheme();
      }
    }

    private static class get_role_grants_for_principal_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_role_grants_for_principal_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_role_grants_for_principal_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_role_grants_for_principal_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.success = new GetRoleGrantsForPrincipalResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_privilege_set_args implements org.apache.thrift.TBase<get_privilege_set_args, get_privilege_set_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_privilege_set_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_privilege_set_args");

    private static final org.apache.thrift.protocol.TField HIVE_OBJECT_FIELD_DESC = new org.apache.thrift.protocol.TField("hiveObject", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("user_name", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField GROUP_NAMES_FIELD_DESC = new org.apache.thrift.protocol.TField("group_names", org.apache.thrift.protocol.TType.LIST, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_privilege_set_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_privilege_set_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable HiveObjectRef hiveObject; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String user_name; // required
    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> group_names; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      HIVE_OBJECT((short)1, "hiveObject"),
      USER_NAME((short)2, "user_name"),
      GROUP_NAMES((short)3, "group_names");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // HIVE_OBJECT
            return HIVE_OBJECT;
          case 2: // USER_NAME
            return USER_NAME;
          case 3: // GROUP_NAMES
            return GROUP_NAMES;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.HIVE_OBJECT, new org.apache.thrift.meta_data.FieldMetaData("hiveObject", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, HiveObjectRef.class)));
      tmpMap.put(_Fields.USER_NAME, new org.apache.thrift.meta_data.FieldMetaData("user_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.GROUP_NAMES, new org.apache.thrift.meta_data.FieldMetaData("group_names", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_privilege_set_args.class, metaDataMap);
    }

    public get_privilege_set_args() {
    }

    public get_privilege_set_args(
      HiveObjectRef hiveObject,
      java.lang.String user_name,
      java.util.List<java.lang.String> group_names)
    {
      this();
      this.hiveObject = hiveObject;
      this.user_name = user_name;
      this.group_names = group_names;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_privilege_set_args(get_privilege_set_args other) {
      if (other.isSetHiveObject()) {
        this.hiveObject = new HiveObjectRef(other.hiveObject);
      }
      if (other.isSetUser_name()) {
        this.user_name = other.user_name;
      }
      if (other.isSetGroup_names()) {
        java.util.List<java.lang.String> __this__group_names = new java.util.ArrayList<java.lang.String>(other.group_names);
        this.group_names = __this__group_names;
      }
    }

    public get_privilege_set_args deepCopy() {
      return new get_privilege_set_args(this);
    }

    @Override
    public void clear() {
      this.hiveObject = null;
      this.user_name = null;
      this.group_names = null;
    }

    @org.apache.thrift.annotation.Nullable
    public HiveObjectRef getHiveObject() {
      return this.hiveObject;
    }

    public void setHiveObject(@org.apache.thrift.annotation.Nullable HiveObjectRef hiveObject) {
      this.hiveObject = hiveObject;
    }

    public void unsetHiveObject() {
      this.hiveObject = null;
    }

    /** Returns true if field hiveObject is set (has been assigned a value) and false otherwise */
    public boolean isSetHiveObject() {
      return this.hiveObject != null;
    }

    public void setHiveObjectIsSet(boolean value) {
      if (!value) {
        this.hiveObject = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getUser_name() {
      return this.user_name;
    }

    public void setUser_name(@org.apache.thrift.annotation.Nullable java.lang.String user_name) {
      this.user_name = user_name;
    }

    public void unsetUser_name() {
      this.user_name = null;
    }

    /** Returns true if field user_name is set (has been assigned a value) and false otherwise */
    public boolean isSetUser_name() {
      return this.user_name != null;
    }

    public void setUser_nameIsSet(boolean value) {
      if (!value) {
        this.user_name = null;
      }
    }

    public int getGroup_namesSize() {
      return (this.group_names == null) ? 0 : this.group_names.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getGroup_namesIterator() {
      return (this.group_names == null) ? null : this.group_names.iterator();
    }

    public void addToGroup_names(java.lang.String elem) {
      if (this.group_names == null) {
        this.group_names = new java.util.ArrayList<java.lang.String>();
      }
      this.group_names.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getGroup_names() {
      return this.group_names;
    }

    public void setGroup_names(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> group_names) {
      this.group_names = group_names;
    }

    public void unsetGroup_names() {
      this.group_names = null;
    }

    /** Returns true if field group_names is set (has been assigned a value) and false otherwise */
    public boolean isSetGroup_names() {
      return this.group_names != null;
    }

    public void setGroup_namesIsSet(boolean value) {
      if (!value) {
        this.group_names = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case HIVE_OBJECT:
        if (value == null) {
          unsetHiveObject();
        } else {
          setHiveObject((HiveObjectRef)value);
        }
        break;

      case USER_NAME:
        if (value == null) {
          unsetUser_name();
        } else {
          setUser_name((java.lang.String)value);
        }
        break;

      case GROUP_NAMES:
        if (value == null) {
          unsetGroup_names();
        } else {
          setGroup_names((java.util.List<java.lang.String>)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case HIVE_OBJECT:
        return getHiveObject();

      case USER_NAME:
        return getUser_name();

      case GROUP_NAMES:
        return getGroup_names();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case HIVE_OBJECT:
        return isSetHiveObject();
      case USER_NAME:
        return isSetUser_name();
      case GROUP_NAMES:
        return isSetGroup_names();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_privilege_set_args)
        return this.equals((get_privilege_set_args)that);
      return false;
    }

    public boolean equals(get_privilege_set_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_hiveObject = true && this.isSetHiveObject();
      boolean that_present_hiveObject = true && that.isSetHiveObject();
      if (this_present_hiveObject || that_present_hiveObject) {
        if (!(this_present_hiveObject && that_present_hiveObject))
          return false;
        if (!this.hiveObject.equals(that.hiveObject))
          return false;
      }

      boolean this_present_user_name = true && this.isSetUser_name();
      boolean that_present_user_name = true && that.isSetUser_name();
      if (this_present_user_name || that_present_user_name) {
        if (!(this_present_user_name && that_present_user_name))
          return false;
        if (!this.user_name.equals(that.user_name))
          return false;
      }

      boolean this_present_group_names = true && this.isSetGroup_names();
      boolean that_present_group_names = true && that.isSetGroup_names();
      if (this_present_group_names || that_present_group_names) {
        if (!(this_present_group_names && that_present_group_names))
          return false;
        if (!this.group_names.equals(that.group_names))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetHiveObject()) ? 131071 : 524287);
      if (isSetHiveObject())
        hashCode = hashCode * 8191 + hiveObject.hashCode();

      hashCode = hashCode * 8191 + ((isSetUser_name()) ? 131071 : 524287);
      if (isSetUser_name())
        hashCode = hashCode * 8191 + user_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetGroup_names()) ? 131071 : 524287);
      if (isSetGroup_names())
        hashCode = hashCode * 8191 + group_names.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_privilege_set_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetHiveObject(), other.isSetHiveObject());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetHiveObject()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.hiveObject, other.hiveObject);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetUser_name(), other.isSetUser_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUser_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.user_name, other.user_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetGroup_names(), other.isSetGroup_names());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetGroup_names()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.group_names, other.group_names);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_privilege_set_args(");
      boolean first = true;

      sb.append("hiveObject:");
      if (this.hiveObject == null) {
        sb.append("null");
      } else {
        sb.append(this.hiveObject);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("user_name:");
      if (this.user_name == null) {
        sb.append("null");
      } else {
        sb.append(this.user_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("group_names:");
      if (this.group_names == null) {
        sb.append("null");
      } else {
        sb.append(this.group_names);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (hiveObject != null) {
        hiveObject.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_privilege_set_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_privilege_set_argsStandardScheme getScheme() {
        return new get_privilege_set_argsStandardScheme();
      }
    }

    private static class get_privilege_set_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_privilege_set_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_privilege_set_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // HIVE_OBJECT
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.hiveObject = new HiveObjectRef();
                struct.hiveObject.read(iprot);
                struct.setHiveObjectIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // USER_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.user_name = iprot.readString();
                struct.setUser_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // GROUP_NAMES
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1428 = iprot.readListBegin();
                  struct.group_names = new java.util.ArrayList<java.lang.String>(_list1428.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem1429;
                  for (int _i1430 = 0; _i1430 < _list1428.size; ++_i1430)
                  {
                    _elem1429 = iprot.readString();
                    struct.group_names.add(_elem1429);
                  }
                  iprot.readListEnd();
                }
                struct.setGroup_namesIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_privilege_set_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.hiveObject != null) {
          oprot.writeFieldBegin(HIVE_OBJECT_FIELD_DESC);
          struct.hiveObject.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.user_name != null) {
          oprot.writeFieldBegin(USER_NAME_FIELD_DESC);
          oprot.writeString(struct.user_name);
          oprot.writeFieldEnd();
        }
        if (struct.group_names != null) {
          oprot.writeFieldBegin(GROUP_NAMES_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.group_names.size()));
            for (java.lang.String _iter1431 : struct.group_names)
            {
              oprot.writeString(_iter1431);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_privilege_set_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_privilege_set_argsTupleScheme getScheme() {
        return new get_privilege_set_argsTupleScheme();
      }
    }

    private static class get_privilege_set_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_privilege_set_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_privilege_set_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetHiveObject()) {
          optionals.set(0);
        }
        if (struct.isSetUser_name()) {
          optionals.set(1);
        }
        if (struct.isSetGroup_names()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetHiveObject()) {
          struct.hiveObject.write(oprot);
        }
        if (struct.isSetUser_name()) {
          oprot.writeString(struct.user_name);
        }
        if (struct.isSetGroup_names()) {
          {
            oprot.writeI32(struct.group_names.size());
            for (java.lang.String _iter1432 : struct.group_names)
            {
              oprot.writeString(_iter1432);
            }
          }
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_privilege_set_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.hiveObject = new HiveObjectRef();
          struct.hiveObject.read(iprot);
          struct.setHiveObjectIsSet(true);
        }
        if (incoming.get(1)) {
          struct.user_name = iprot.readString();
          struct.setUser_nameIsSet(true);
        }
        if (incoming.get(2)) {
          {
            org.apache.thrift.protocol.TList _list1433 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.group_names = new java.util.ArrayList<java.lang.String>(_list1433.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem1434;
            for (int _i1435 = 0; _i1435 < _list1433.size; ++_i1435)
            {
              _elem1434 = iprot.readString();
              struct.group_names.add(_elem1434);
            }
          }
          struct.setGroup_namesIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_privilege_set_result implements org.apache.thrift.TBase<get_privilege_set_result, get_privilege_set_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_privilege_set_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_privilege_set_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_privilege_set_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_privilege_set_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable PrincipalPrivilegeSet success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, PrincipalPrivilegeSet.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_privilege_set_result.class, metaDataMap);
    }

    public get_privilege_set_result() {
    }

    public get_privilege_set_result(
      PrincipalPrivilegeSet success,
      MetaException o1)
    {
      this();
      this.success = success;
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_privilege_set_result(get_privilege_set_result other) {
      if (other.isSetSuccess()) {
        this.success = new PrincipalPrivilegeSet(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public get_privilege_set_result deepCopy() {
      return new get_privilege_set_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public PrincipalPrivilegeSet getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable PrincipalPrivilegeSet success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((PrincipalPrivilegeSet)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_privilege_set_result)
        return this.equals((get_privilege_set_result)that);
      return false;
    }

    public boolean equals(get_privilege_set_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_privilege_set_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_privilege_set_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_privilege_set_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_privilege_set_resultStandardScheme getScheme() {
        return new get_privilege_set_resultStandardScheme();
      }
    }

    private static class get_privilege_set_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_privilege_set_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_privilege_set_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new PrincipalPrivilegeSet();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_privilege_set_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_privilege_set_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_privilege_set_resultTupleScheme getScheme() {
        return new get_privilege_set_resultTupleScheme();
      }
    }

    private static class get_privilege_set_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_privilege_set_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_privilege_set_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_privilege_set_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.success = new PrincipalPrivilegeSet();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class list_privileges_args implements org.apache.thrift.TBase<list_privileges_args, list_privileges_args._Fields>, java.io.Serializable, Cloneable, Comparable<list_privileges_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("list_privileges_args");

    private static final org.apache.thrift.protocol.TField PRINCIPAL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("principal_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField PRINCIPAL_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("principal_type", org.apache.thrift.protocol.TType.I32, (short)2);
    private static final org.apache.thrift.protocol.TField HIVE_OBJECT_FIELD_DESC = new org.apache.thrift.protocol.TField("hiveObject", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new list_privileges_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new list_privileges_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String principal_name; // required
    private @org.apache.thrift.annotation.Nullable PrincipalType principal_type; // required
    private @org.apache.thrift.annotation.Nullable HiveObjectRef hiveObject; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      PRINCIPAL_NAME((short)1, "principal_name"),
      /**
       * 
       * @see PrincipalType
       */
      PRINCIPAL_TYPE((short)2, "principal_type"),
      HIVE_OBJECT((short)3, "hiveObject");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // PRINCIPAL_NAME
            return PRINCIPAL_NAME;
          case 2: // PRINCIPAL_TYPE
            return PRINCIPAL_TYPE;
          case 3: // HIVE_OBJECT
            return HIVE_OBJECT;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.PRINCIPAL_NAME, new org.apache.thrift.meta_data.FieldMetaData("principal_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.PRINCIPAL_TYPE, new org.apache.thrift.meta_data.FieldMetaData("principal_type", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, PrincipalType.class)));
      tmpMap.put(_Fields.HIVE_OBJECT, new org.apache.thrift.meta_data.FieldMetaData("hiveObject", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, HiveObjectRef.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(list_privileges_args.class, metaDataMap);
    }

    public list_privileges_args() {
    }

    public list_privileges_args(
      java.lang.String principal_name,
      PrincipalType principal_type,
      HiveObjectRef hiveObject)
    {
      this();
      this.principal_name = principal_name;
      this.principal_type = principal_type;
      this.hiveObject = hiveObject;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public list_privileges_args(list_privileges_args other) {
      if (other.isSetPrincipal_name()) {
        this.principal_name = other.principal_name;
      }
      if (other.isSetPrincipal_type()) {
        this.principal_type = other.principal_type;
      }
      if (other.isSetHiveObject()) {
        this.hiveObject = new HiveObjectRef(other.hiveObject);
      }
    }

    public list_privileges_args deepCopy() {
      return new list_privileges_args(this);
    }

    @Override
    public void clear() {
      this.principal_name = null;
      this.principal_type = null;
      this.hiveObject = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getPrincipal_name() {
      return this.principal_name;
    }

    public void setPrincipal_name(@org.apache.thrift.annotation.Nullable java.lang.String principal_name) {
      this.principal_name = principal_name;
    }

    public void unsetPrincipal_name() {
      this.principal_name = null;
    }

    /** Returns true if field principal_name is set (has been assigned a value) and false otherwise */
    public boolean isSetPrincipal_name() {
      return this.principal_name != null;
    }

    public void setPrincipal_nameIsSet(boolean value) {
      if (!value) {
        this.principal_name = null;
      }
    }

    /**
     * 
     * @see PrincipalType
     */
    @org.apache.thrift.annotation.Nullable
    public PrincipalType getPrincipal_type() {
      return this.principal_type;
    }

    /**
     * 
     * @see PrincipalType
     */
    public void setPrincipal_type(@org.apache.thrift.annotation.Nullable PrincipalType principal_type) {
      this.principal_type = principal_type;
    }

    public void unsetPrincipal_type() {
      this.principal_type = null;
    }

    /** Returns true if field principal_type is set (has been assigned a value) and false otherwise */
    public boolean isSetPrincipal_type() {
      return this.principal_type != null;
    }

    public void setPrincipal_typeIsSet(boolean value) {
      if (!value) {
        this.principal_type = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public HiveObjectRef getHiveObject() {
      return this.hiveObject;
    }

    public void setHiveObject(@org.apache.thrift.annotation.Nullable HiveObjectRef hiveObject) {
      this.hiveObject = hiveObject;
    }

    public void unsetHiveObject() {
      this.hiveObject = null;
    }

    /** Returns true if field hiveObject is set (has been assigned a value) and false otherwise */
    public boolean isSetHiveObject() {
      return this.hiveObject != null;
    }

    public void setHiveObjectIsSet(boolean value) {
      if (!value) {
        this.hiveObject = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case PRINCIPAL_NAME:
        if (value == null) {
          unsetPrincipal_name();
        } else {
          setPrincipal_name((java.lang.String)value);
        }
        break;

      case PRINCIPAL_TYPE:
        if (value == null) {
          unsetPrincipal_type();
        } else {
          setPrincipal_type((PrincipalType)value);
        }
        break;

      case HIVE_OBJECT:
        if (value == null) {
          unsetHiveObject();
        } else {
          setHiveObject((HiveObjectRef)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case PRINCIPAL_NAME:
        return getPrincipal_name();

      case PRINCIPAL_TYPE:
        return getPrincipal_type();

      case HIVE_OBJECT:
        return getHiveObject();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case PRINCIPAL_NAME:
        return isSetPrincipal_name();
      case PRINCIPAL_TYPE:
        return isSetPrincipal_type();
      case HIVE_OBJECT:
        return isSetHiveObject();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof list_privileges_args)
        return this.equals((list_privileges_args)that);
      return false;
    }

    public boolean equals(list_privileges_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_principal_name = true && this.isSetPrincipal_name();
      boolean that_present_principal_name = true && that.isSetPrincipal_name();
      if (this_present_principal_name || that_present_principal_name) {
        if (!(this_present_principal_name && that_present_principal_name))
          return false;
        if (!this.principal_name.equals(that.principal_name))
          return false;
      }

      boolean this_present_principal_type = true && this.isSetPrincipal_type();
      boolean that_present_principal_type = true && that.isSetPrincipal_type();
      if (this_present_principal_type || that_present_principal_type) {
        if (!(this_present_principal_type && that_present_principal_type))
          return false;
        if (!this.principal_type.equals(that.principal_type))
          return false;
      }

      boolean this_present_hiveObject = true && this.isSetHiveObject();
      boolean that_present_hiveObject = true && that.isSetHiveObject();
      if (this_present_hiveObject || that_present_hiveObject) {
        if (!(this_present_hiveObject && that_present_hiveObject))
          return false;
        if (!this.hiveObject.equals(that.hiveObject))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetPrincipal_name()) ? 131071 : 524287);
      if (isSetPrincipal_name())
        hashCode = hashCode * 8191 + principal_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetPrincipal_type()) ? 131071 : 524287);
      if (isSetPrincipal_type())
        hashCode = hashCode * 8191 + principal_type.getValue();

      hashCode = hashCode * 8191 + ((isSetHiveObject()) ? 131071 : 524287);
      if (isSetHiveObject())
        hashCode = hashCode * 8191 + hiveObject.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(list_privileges_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetPrincipal_name(), other.isSetPrincipal_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPrincipal_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.principal_name, other.principal_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetPrincipal_type(), other.isSetPrincipal_type());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPrincipal_type()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.principal_type, other.principal_type);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetHiveObject(), other.isSetHiveObject());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetHiveObject()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.hiveObject, other.hiveObject);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("list_privileges_args(");
      boolean first = true;

      sb.append("principal_name:");
      if (this.principal_name == null) {
        sb.append("null");
      } else {
        sb.append(this.principal_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("principal_type:");
      if (this.principal_type == null) {
        sb.append("null");
      } else {
        sb.append(this.principal_type);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("hiveObject:");
      if (this.hiveObject == null) {
        sb.append("null");
      } else {
        sb.append(this.hiveObject);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (hiveObject != null) {
        hiveObject.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class list_privileges_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public list_privileges_argsStandardScheme getScheme() {
        return new list_privileges_argsStandardScheme();
      }
    }

    private static class list_privileges_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<list_privileges_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, list_privileges_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // PRINCIPAL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.principal_name = iprot.readString();
                struct.setPrincipal_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // PRINCIPAL_TYPE
              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
                struct.principal_type = org.apache.hadoop.hive.metastore.api.PrincipalType.findByValue(iprot.readI32());
                struct.setPrincipal_typeIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // HIVE_OBJECT
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.hiveObject = new HiveObjectRef();
                struct.hiveObject.read(iprot);
                struct.setHiveObjectIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, list_privileges_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.principal_name != null) {
          oprot.writeFieldBegin(PRINCIPAL_NAME_FIELD_DESC);
          oprot.writeString(struct.principal_name);
          oprot.writeFieldEnd();
        }
        if (struct.principal_type != null) {
          oprot.writeFieldBegin(PRINCIPAL_TYPE_FIELD_DESC);
          oprot.writeI32(struct.principal_type.getValue());
          oprot.writeFieldEnd();
        }
        if (struct.hiveObject != null) {
          oprot.writeFieldBegin(HIVE_OBJECT_FIELD_DESC);
          struct.hiveObject.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class list_privileges_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public list_privileges_argsTupleScheme getScheme() {
        return new list_privileges_argsTupleScheme();
      }
    }

    private static class list_privileges_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<list_privileges_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, list_privileges_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetPrincipal_name()) {
          optionals.set(0);
        }
        if (struct.isSetPrincipal_type()) {
          optionals.set(1);
        }
        if (struct.isSetHiveObject()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetPrincipal_name()) {
          oprot.writeString(struct.principal_name);
        }
        if (struct.isSetPrincipal_type()) {
          oprot.writeI32(struct.principal_type.getValue());
        }
        if (struct.isSetHiveObject()) {
          struct.hiveObject.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, list_privileges_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.principal_name = iprot.readString();
          struct.setPrincipal_nameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.principal_type = org.apache.hadoop.hive.metastore.api.PrincipalType.findByValue(iprot.readI32());
          struct.setPrincipal_typeIsSet(true);
        }
        if (incoming.get(2)) {
          struct.hiveObject = new HiveObjectRef();
          struct.hiveObject.read(iprot);
          struct.setHiveObjectIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class list_privileges_result implements org.apache.thrift.TBase<list_privileges_result, list_privileges_result._Fields>, java.io.Serializable, Cloneable, Comparable<list_privileges_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("list_privileges_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new list_privileges_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new list_privileges_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<HiveObjectPrivilege> success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, HiveObjectPrivilege.class))));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(list_privileges_result.class, metaDataMap);
    }

    public list_privileges_result() {
    }

    public list_privileges_result(
      java.util.List<HiveObjectPrivilege> success,
      MetaException o1)
    {
      this();
      this.success = success;
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public list_privileges_result(list_privileges_result other) {
      if (other.isSetSuccess()) {
        java.util.List<HiveObjectPrivilege> __this__success = new java.util.ArrayList<HiveObjectPrivilege>(other.success.size());
        for (HiveObjectPrivilege other_element : other.success) {
          __this__success.add(new HiveObjectPrivilege(other_element));
        }
        this.success = __this__success;
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public list_privileges_result deepCopy() {
      return new list_privileges_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<HiveObjectPrivilege> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(HiveObjectPrivilege elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<HiveObjectPrivilege>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<HiveObjectPrivilege> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<HiveObjectPrivilege> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<HiveObjectPrivilege>)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof list_privileges_result)
        return this.equals((list_privileges_result)that);
      return false;
    }

    public boolean equals(list_privileges_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(list_privileges_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("list_privileges_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class list_privileges_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public list_privileges_resultStandardScheme getScheme() {
        return new list_privileges_resultStandardScheme();
      }
    }

    private static class list_privileges_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<list_privileges_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, list_privileges_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1436 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<HiveObjectPrivilege>(_list1436.size);
                  @org.apache.thrift.annotation.Nullable HiveObjectPrivilege _elem1437;
                  for (int _i1438 = 0; _i1438 < _list1436.size; ++_i1438)
                  {
                    _elem1437 = new HiveObjectPrivilege();
                    _elem1437.read(iprot);
                    struct.success.add(_elem1437);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, list_privileges_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
            for (HiveObjectPrivilege _iter1439 : struct.success)
            {
              _iter1439.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class list_privileges_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public list_privileges_resultTupleScheme getScheme() {
        return new list_privileges_resultTupleScheme();
      }
    }

    private static class list_privileges_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<list_privileges_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, list_privileges_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (HiveObjectPrivilege _iter1440 : struct.success)
            {
              _iter1440.write(oprot);
            }
          }
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, list_privileges_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list1441 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
            struct.success = new java.util.ArrayList<HiveObjectPrivilege>(_list1441.size);
            @org.apache.thrift.annotation.Nullable HiveObjectPrivilege _elem1442;
            for (int _i1443 = 0; _i1443 < _list1441.size; ++_i1443)
            {
              _elem1442 = new HiveObjectPrivilege();
              _elem1442.read(iprot);
              struct.success.add(_elem1442);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class grant_privileges_args implements org.apache.thrift.TBase<grant_privileges_args, grant_privileges_args._Fields>, java.io.Serializable, Cloneable, Comparable<grant_privileges_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("grant_privileges_args");

    private static final org.apache.thrift.protocol.TField PRIVILEGES_FIELD_DESC = new org.apache.thrift.protocol.TField("privileges", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new grant_privileges_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new grant_privileges_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable PrivilegeBag privileges; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      PRIVILEGES((short)1, "privileges");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // PRIVILEGES
            return PRIVILEGES;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.PRIVILEGES, new org.apache.thrift.meta_data.FieldMetaData("privileges", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, PrivilegeBag.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(grant_privileges_args.class, metaDataMap);
    }

    public grant_privileges_args() {
    }

    public grant_privileges_args(
      PrivilegeBag privileges)
    {
      this();
      this.privileges = privileges;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public grant_privileges_args(grant_privileges_args other) {
      if (other.isSetPrivileges()) {
        this.privileges = new PrivilegeBag(other.privileges);
      }
    }

    public grant_privileges_args deepCopy() {
      return new grant_privileges_args(this);
    }

    @Override
    public void clear() {
      this.privileges = null;
    }

    @org.apache.thrift.annotation.Nullable
    public PrivilegeBag getPrivileges() {
      return this.privileges;
    }

    public void setPrivileges(@org.apache.thrift.annotation.Nullable PrivilegeBag privileges) {
      this.privileges = privileges;
    }

    public void unsetPrivileges() {
      this.privileges = null;
    }

    /** Returns true if field privileges is set (has been assigned a value) and false otherwise */
    public boolean isSetPrivileges() {
      return this.privileges != null;
    }

    public void setPrivilegesIsSet(boolean value) {
      if (!value) {
        this.privileges = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case PRIVILEGES:
        if (value == null) {
          unsetPrivileges();
        } else {
          setPrivileges((PrivilegeBag)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case PRIVILEGES:
        return getPrivileges();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case PRIVILEGES:
        return isSetPrivileges();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof grant_privileges_args)
        return this.equals((grant_privileges_args)that);
      return false;
    }

    public boolean equals(grant_privileges_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_privileges = true && this.isSetPrivileges();
      boolean that_present_privileges = true && that.isSetPrivileges();
      if (this_present_privileges || that_present_privileges) {
        if (!(this_present_privileges && that_present_privileges))
          return false;
        if (!this.privileges.equals(that.privileges))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetPrivileges()) ? 131071 : 524287);
      if (isSetPrivileges())
        hashCode = hashCode * 8191 + privileges.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(grant_privileges_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetPrivileges(), other.isSetPrivileges());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPrivileges()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.privileges, other.privileges);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("grant_privileges_args(");
      boolean first = true;

      sb.append("privileges:");
      if (this.privileges == null) {
        sb.append("null");
      } else {
        sb.append(this.privileges);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (privileges != null) {
        privileges.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class grant_privileges_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public grant_privileges_argsStandardScheme getScheme() {
        return new grant_privileges_argsStandardScheme();
      }
    }

    private static class grant_privileges_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<grant_privileges_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, grant_privileges_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // PRIVILEGES
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.privileges = new PrivilegeBag();
                struct.privileges.read(iprot);
                struct.setPrivilegesIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, grant_privileges_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.privileges != null) {
          oprot.writeFieldBegin(PRIVILEGES_FIELD_DESC);
          struct.privileges.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class grant_privileges_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public grant_privileges_argsTupleScheme getScheme() {
        return new grant_privileges_argsTupleScheme();
      }
    }

    private static class grant_privileges_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<grant_privileges_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, grant_privileges_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetPrivileges()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetPrivileges()) {
          struct.privileges.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, grant_privileges_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.privileges = new PrivilegeBag();
          struct.privileges.read(iprot);
          struct.setPrivilegesIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class grant_privileges_result implements org.apache.thrift.TBase<grant_privileges_result, grant_privileges_result._Fields>, java.io.Serializable, Cloneable, Comparable<grant_privileges_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("grant_privileges_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new grant_privileges_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new grant_privileges_resultTupleSchemeFactory();

    private boolean success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(grant_privileges_result.class, metaDataMap);
    }

    public grant_privileges_result() {
    }

    public grant_privileges_result(
      boolean success,
      MetaException o1)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public grant_privileges_result(grant_privileges_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public grant_privileges_result deepCopy() {
      return new grant_privileges_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = false;
      this.o1 = null;
    }

    public boolean isSuccess() {
      return this.success;
    }

    public void setSuccess(boolean success) {
      this.success = success;
      setSuccessIsSet(true);
    }

    public void unsetSuccess() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.lang.Boolean)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return isSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof grant_privileges_result)
        return this.equals((grant_privileges_result)that);
      return false;
    }

    public boolean equals(grant_privileges_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(grant_privileges_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("grant_privileges_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class grant_privileges_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public grant_privileges_resultStandardScheme getScheme() {
        return new grant_privileges_resultStandardScheme();
      }
    }

    private static class grant_privileges_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<grant_privileges_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, grant_privileges_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.success = iprot.readBool();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, grant_privileges_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeBool(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class grant_privileges_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public grant_privileges_resultTupleScheme getScheme() {
        return new grant_privileges_resultTupleScheme();
      }
    }

    private static class grant_privileges_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<grant_privileges_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, grant_privileges_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          oprot.writeBool(struct.success);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, grant_privileges_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.success = iprot.readBool();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class revoke_privileges_args implements org.apache.thrift.TBase<revoke_privileges_args, revoke_privileges_args._Fields>, java.io.Serializable, Cloneable, Comparable<revoke_privileges_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("revoke_privileges_args");

    private static final org.apache.thrift.protocol.TField PRIVILEGES_FIELD_DESC = new org.apache.thrift.protocol.TField("privileges", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new revoke_privileges_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new revoke_privileges_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable PrivilegeBag privileges; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      PRIVILEGES((short)1, "privileges");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // PRIVILEGES
            return PRIVILEGES;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.PRIVILEGES, new org.apache.thrift.meta_data.FieldMetaData("privileges", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, PrivilegeBag.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(revoke_privileges_args.class, metaDataMap);
    }

    public revoke_privileges_args() {
    }

    public revoke_privileges_args(
      PrivilegeBag privileges)
    {
      this();
      this.privileges = privileges;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public revoke_privileges_args(revoke_privileges_args other) {
      if (other.isSetPrivileges()) {
        this.privileges = new PrivilegeBag(other.privileges);
      }
    }

    public revoke_privileges_args deepCopy() {
      return new revoke_privileges_args(this);
    }

    @Override
    public void clear() {
      this.privileges = null;
    }

    @org.apache.thrift.annotation.Nullable
    public PrivilegeBag getPrivileges() {
      return this.privileges;
    }

    public void setPrivileges(@org.apache.thrift.annotation.Nullable PrivilegeBag privileges) {
      this.privileges = privileges;
    }

    public void unsetPrivileges() {
      this.privileges = null;
    }

    /** Returns true if field privileges is set (has been assigned a value) and false otherwise */
    public boolean isSetPrivileges() {
      return this.privileges != null;
    }

    public void setPrivilegesIsSet(boolean value) {
      if (!value) {
        this.privileges = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case PRIVILEGES:
        if (value == null) {
          unsetPrivileges();
        } else {
          setPrivileges((PrivilegeBag)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case PRIVILEGES:
        return getPrivileges();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case PRIVILEGES:
        return isSetPrivileges();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof revoke_privileges_args)
        return this.equals((revoke_privileges_args)that);
      return false;
    }

    public boolean equals(revoke_privileges_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_privileges = true && this.isSetPrivileges();
      boolean that_present_privileges = true && that.isSetPrivileges();
      if (this_present_privileges || that_present_privileges) {
        if (!(this_present_privileges && that_present_privileges))
          return false;
        if (!this.privileges.equals(that.privileges))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetPrivileges()) ? 131071 : 524287);
      if (isSetPrivileges())
        hashCode = hashCode * 8191 + privileges.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(revoke_privileges_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetPrivileges(), other.isSetPrivileges());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetPrivileges()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.privileges, other.privileges);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("revoke_privileges_args(");
      boolean first = true;

      sb.append("privileges:");
      if (this.privileges == null) {
        sb.append("null");
      } else {
        sb.append(this.privileges);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (privileges != null) {
        privileges.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class revoke_privileges_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public revoke_privileges_argsStandardScheme getScheme() {
        return new revoke_privileges_argsStandardScheme();
      }
    }

    private static class revoke_privileges_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<revoke_privileges_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, revoke_privileges_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // PRIVILEGES
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.privileges = new PrivilegeBag();
                struct.privileges.read(iprot);
                struct.setPrivilegesIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, revoke_privileges_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.privileges != null) {
          oprot.writeFieldBegin(PRIVILEGES_FIELD_DESC);
          struct.privileges.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class revoke_privileges_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public revoke_privileges_argsTupleScheme getScheme() {
        return new revoke_privileges_argsTupleScheme();
      }
    }

    private static class revoke_privileges_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<revoke_privileges_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, revoke_privileges_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetPrivileges()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetPrivileges()) {
          struct.privileges.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, revoke_privileges_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.privileges = new PrivilegeBag();
          struct.privileges.read(iprot);
          struct.setPrivilegesIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class revoke_privileges_result implements org.apache.thrift.TBase<revoke_privileges_result, revoke_privileges_result._Fields>, java.io.Serializable, Cloneable, Comparable<revoke_privileges_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("revoke_privileges_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new revoke_privileges_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new revoke_privileges_resultTupleSchemeFactory();

    private boolean success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(revoke_privileges_result.class, metaDataMap);
    }

    public revoke_privileges_result() {
    }

    public revoke_privileges_result(
      boolean success,
      MetaException o1)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public revoke_privileges_result(revoke_privileges_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public revoke_privileges_result deepCopy() {
      return new revoke_privileges_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = false;
      this.o1 = null;
    }

    public boolean isSuccess() {
      return this.success;
    }

    public void setSuccess(boolean success) {
      this.success = success;
      setSuccessIsSet(true);
    }

    public void unsetSuccess() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.lang.Boolean)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return isSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof revoke_privileges_result)
        return this.equals((revoke_privileges_result)that);
      return false;
    }

    public boolean equals(revoke_privileges_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(revoke_privileges_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("revoke_privileges_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class revoke_privileges_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public revoke_privileges_resultStandardScheme getScheme() {
        return new revoke_privileges_resultStandardScheme();
      }
    }

    private static class revoke_privileges_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<revoke_privileges_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, revoke_privileges_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.success = iprot.readBool();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, revoke_privileges_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeBool(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class revoke_privileges_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public revoke_privileges_resultTupleScheme getScheme() {
        return new revoke_privileges_resultTupleScheme();
      }
    }

    private static class revoke_privileges_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<revoke_privileges_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, revoke_privileges_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          oprot.writeBool(struct.success);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, revoke_privileges_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.success = iprot.readBool();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class grant_revoke_privileges_args implements org.apache.thrift.TBase<grant_revoke_privileges_args, grant_revoke_privileges_args._Fields>, java.io.Serializable, Cloneable, Comparable<grant_revoke_privileges_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("grant_revoke_privileges_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new grant_revoke_privileges_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new grant_revoke_privileges_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable GrantRevokePrivilegeRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GrantRevokePrivilegeRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(grant_revoke_privileges_args.class, metaDataMap);
    }

    public grant_revoke_privileges_args() {
    }

    public grant_revoke_privileges_args(
      GrantRevokePrivilegeRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public grant_revoke_privileges_args(grant_revoke_privileges_args other) {
      if (other.isSetRequest()) {
        this.request = new GrantRevokePrivilegeRequest(other.request);
      }
    }

    public grant_revoke_privileges_args deepCopy() {
      return new grant_revoke_privileges_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    @org.apache.thrift.annotation.Nullable
    public GrantRevokePrivilegeRequest getRequest() {
      return this.request;
    }

    public void setRequest(@org.apache.thrift.annotation.Nullable GrantRevokePrivilegeRequest request) {
      this.request = request;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((GrantRevokePrivilegeRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof grant_revoke_privileges_args)
        return this.equals((grant_revoke_privileges_args)that);
      return false;
    }

    public boolean equals(grant_revoke_privileges_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRequest()) ? 131071 : 524287);
      if (isSetRequest())
        hashCode = hashCode * 8191 + request.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(grant_revoke_privileges_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRequest(), other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("grant_revoke_privileges_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class grant_revoke_privileges_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public grant_revoke_privileges_argsStandardScheme getScheme() {
        return new grant_revoke_privileges_argsStandardScheme();
      }
    }

    private static class grant_revoke_privileges_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<grant_revoke_privileges_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, grant_revoke_privileges_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new GrantRevokePrivilegeRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, grant_revoke_privileges_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class grant_revoke_privileges_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public grant_revoke_privileges_argsTupleScheme getScheme() {
        return new grant_revoke_privileges_argsTupleScheme();
      }
    }

    private static class grant_revoke_privileges_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<grant_revoke_privileges_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, grant_revoke_privileges_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, grant_revoke_privileges_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new GrantRevokePrivilegeRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class grant_revoke_privileges_result implements org.apache.thrift.TBase<grant_revoke_privileges_result, grant_revoke_privileges_result._Fields>, java.io.Serializable, Cloneable, Comparable<grant_revoke_privileges_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("grant_revoke_privileges_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new grant_revoke_privileges_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new grant_revoke_privileges_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable GrantRevokePrivilegeResponse success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GrantRevokePrivilegeResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(grant_revoke_privileges_result.class, metaDataMap);
    }

    public grant_revoke_privileges_result() {
    }

    public grant_revoke_privileges_result(
      GrantRevokePrivilegeResponse success,
      MetaException o1)
    {
      this();
      this.success = success;
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public grant_revoke_privileges_result(grant_revoke_privileges_result other) {
      if (other.isSetSuccess()) {
        this.success = new GrantRevokePrivilegeResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public grant_revoke_privileges_result deepCopy() {
      return new grant_revoke_privileges_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public GrantRevokePrivilegeResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable GrantRevokePrivilegeResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((GrantRevokePrivilegeResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof grant_revoke_privileges_result)
        return this.equals((grant_revoke_privileges_result)that);
      return false;
    }

    public boolean equals(grant_revoke_privileges_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(grant_revoke_privileges_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("grant_revoke_privileges_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class grant_revoke_privileges_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public grant_revoke_privileges_resultStandardScheme getScheme() {
        return new grant_revoke_privileges_resultStandardScheme();
      }
    }

    private static class grant_revoke_privileges_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<grant_revoke_privileges_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, grant_revoke_privileges_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new GrantRevokePrivilegeResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, grant_revoke_privileges_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class grant_revoke_privileges_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public grant_revoke_privileges_resultTupleScheme getScheme() {
        return new grant_revoke_privileges_resultTupleScheme();
      }
    }

    private static class grant_revoke_privileges_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<grant_revoke_privileges_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, grant_revoke_privileges_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, grant_revoke_privileges_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.success = new GrantRevokePrivilegeResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class refresh_privileges_args implements org.apache.thrift.TBase<refresh_privileges_args, refresh_privileges_args._Fields>, java.io.Serializable, Cloneable, Comparable<refresh_privileges_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("refresh_privileges_args");

    private static final org.apache.thrift.protocol.TField OBJ_TO_REFRESH_FIELD_DESC = new org.apache.thrift.protocol.TField("objToRefresh", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField AUTHORIZER_FIELD_DESC = new org.apache.thrift.protocol.TField("authorizer", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField GRANT_REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("grantRequest", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new refresh_privileges_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new refresh_privileges_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable HiveObjectRef objToRefresh; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String authorizer; // required
    private @org.apache.thrift.annotation.Nullable GrantRevokePrivilegeRequest grantRequest; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      OBJ_TO_REFRESH((short)1, "objToRefresh"),
      AUTHORIZER((short)2, "authorizer"),
      GRANT_REQUEST((short)3, "grantRequest");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // OBJ_TO_REFRESH
            return OBJ_TO_REFRESH;
          case 2: // AUTHORIZER
            return AUTHORIZER;
          case 3: // GRANT_REQUEST
            return GRANT_REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.OBJ_TO_REFRESH, new org.apache.thrift.meta_data.FieldMetaData("objToRefresh", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, HiveObjectRef.class)));
      tmpMap.put(_Fields.AUTHORIZER, new org.apache.thrift.meta_data.FieldMetaData("authorizer", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.GRANT_REQUEST, new org.apache.thrift.meta_data.FieldMetaData("grantRequest", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GrantRevokePrivilegeRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(refresh_privileges_args.class, metaDataMap);
    }

    public refresh_privileges_args() {
    }

    public refresh_privileges_args(
      HiveObjectRef objToRefresh,
      java.lang.String authorizer,
      GrantRevokePrivilegeRequest grantRequest)
    {
      this();
      this.objToRefresh = objToRefresh;
      this.authorizer = authorizer;
      this.grantRequest = grantRequest;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public refresh_privileges_args(refresh_privileges_args other) {
      if (other.isSetObjToRefresh()) {
        this.objToRefresh = new HiveObjectRef(other.objToRefresh);
      }
      if (other.isSetAuthorizer()) {
        this.authorizer = other.authorizer;
      }
      if (other.isSetGrantRequest()) {
        this.grantRequest = new GrantRevokePrivilegeRequest(other.grantRequest);
      }
    }

    public refresh_privileges_args deepCopy() {
      return new refresh_privileges_args(this);
    }

    @Override
    public void clear() {
      this.objToRefresh = null;
      this.authorizer = null;
      this.grantRequest = null;
    }

    @org.apache.thrift.annotation.Nullable
    public HiveObjectRef getObjToRefresh() {
      return this.objToRefresh;
    }

    public void setObjToRefresh(@org.apache.thrift.annotation.Nullable HiveObjectRef objToRefresh) {
      this.objToRefresh = objToRefresh;
    }

    public void unsetObjToRefresh() {
      this.objToRefresh = null;
    }

    /** Returns true if field objToRefresh is set (has been assigned a value) and false otherwise */
    public boolean isSetObjToRefresh() {
      return this.objToRefresh != null;
    }

    public void setObjToRefreshIsSet(boolean value) {
      if (!value) {
        this.objToRefresh = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getAuthorizer() {
      return this.authorizer;
    }

    public void setAuthorizer(@org.apache.thrift.annotation.Nullable java.lang.String authorizer) {
      this.authorizer = authorizer;
    }

    public void unsetAuthorizer() {
      this.authorizer = null;
    }

    /** Returns true if field authorizer is set (has been assigned a value) and false otherwise */
    public boolean isSetAuthorizer() {
      return this.authorizer != null;
    }

    public void setAuthorizerIsSet(boolean value) {
      if (!value) {
        this.authorizer = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public GrantRevokePrivilegeRequest getGrantRequest() {
      return this.grantRequest;
    }

    public void setGrantRequest(@org.apache.thrift.annotation.Nullable GrantRevokePrivilegeRequest grantRequest) {
      this.grantRequest = grantRequest;
    }

    public void unsetGrantRequest() {
      this.grantRequest = null;
    }

    /** Returns true if field grantRequest is set (has been assigned a value) and false otherwise */
    public boolean isSetGrantRequest() {
      return this.grantRequest != null;
    }

    public void setGrantRequestIsSet(boolean value) {
      if (!value) {
        this.grantRequest = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case OBJ_TO_REFRESH:
        if (value == null) {
          unsetObjToRefresh();
        } else {
          setObjToRefresh((HiveObjectRef)value);
        }
        break;

      case AUTHORIZER:
        if (value == null) {
          unsetAuthorizer();
        } else {
          setAuthorizer((java.lang.String)value);
        }
        break;

      case GRANT_REQUEST:
        if (value == null) {
          unsetGrantRequest();
        } else {
          setGrantRequest((GrantRevokePrivilegeRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case OBJ_TO_REFRESH:
        return getObjToRefresh();

      case AUTHORIZER:
        return getAuthorizer();

      case GRANT_REQUEST:
        return getGrantRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case OBJ_TO_REFRESH:
        return isSetObjToRefresh();
      case AUTHORIZER:
        return isSetAuthorizer();
      case GRANT_REQUEST:
        return isSetGrantRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof refresh_privileges_args)
        return this.equals((refresh_privileges_args)that);
      return false;
    }

    public boolean equals(refresh_privileges_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_objToRefresh = true && this.isSetObjToRefresh();
      boolean that_present_objToRefresh = true && that.isSetObjToRefresh();
      if (this_present_objToRefresh || that_present_objToRefresh) {
        if (!(this_present_objToRefresh && that_present_objToRefresh))
          return false;
        if (!this.objToRefresh.equals(that.objToRefresh))
          return false;
      }

      boolean this_present_authorizer = true && this.isSetAuthorizer();
      boolean that_present_authorizer = true && that.isSetAuthorizer();
      if (this_present_authorizer || that_present_authorizer) {
        if (!(this_present_authorizer && that_present_authorizer))
          return false;
        if (!this.authorizer.equals(that.authorizer))
          return false;
      }

      boolean this_present_grantRequest = true && this.isSetGrantRequest();
      boolean that_present_grantRequest = true && that.isSetGrantRequest();
      if (this_present_grantRequest || that_present_grantRequest) {
        if (!(this_present_grantRequest && that_present_grantRequest))
          return false;
        if (!this.grantRequest.equals(that.grantRequest))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetObjToRefresh()) ? 131071 : 524287);
      if (isSetObjToRefresh())
        hashCode = hashCode * 8191 + objToRefresh.hashCode();

      hashCode = hashCode * 8191 + ((isSetAuthorizer()) ? 131071 : 524287);
      if (isSetAuthorizer())
        hashCode = hashCode * 8191 + authorizer.hashCode();

      hashCode = hashCode * 8191 + ((isSetGrantRequest()) ? 131071 : 524287);
      if (isSetGrantRequest())
        hashCode = hashCode * 8191 + grantRequest.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(refresh_privileges_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetObjToRefresh(), other.isSetObjToRefresh());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetObjToRefresh()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.objToRefresh, other.objToRefresh);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetAuthorizer(), other.isSetAuthorizer());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetAuthorizer()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.authorizer, other.authorizer);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetGrantRequest(), other.isSetGrantRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetGrantRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.grantRequest, other.grantRequest);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("refresh_privileges_args(");
      boolean first = true;

      sb.append("objToRefresh:");
      if (this.objToRefresh == null) {
        sb.append("null");
      } else {
        sb.append(this.objToRefresh);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("authorizer:");
      if (this.authorizer == null) {
        sb.append("null");
      } else {
        sb.append(this.authorizer);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("grantRequest:");
      if (this.grantRequest == null) {
        sb.append("null");
      } else {
        sb.append(this.grantRequest);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (objToRefresh != null) {
        objToRefresh.validate();
      }
      if (grantRequest != null) {
        grantRequest.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class refresh_privileges_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public refresh_privileges_argsStandardScheme getScheme() {
        return new refresh_privileges_argsStandardScheme();
      }
    }

    private static class refresh_privileges_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<refresh_privileges_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, refresh_privileges_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // OBJ_TO_REFRESH
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.objToRefresh = new HiveObjectRef();
                struct.objToRefresh.read(iprot);
                struct.setObjToRefreshIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // AUTHORIZER
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.authorizer = iprot.readString();
                struct.setAuthorizerIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // GRANT_REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.grantRequest = new GrantRevokePrivilegeRequest();
                struct.grantRequest.read(iprot);
                struct.setGrantRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, refresh_privileges_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.objToRefresh != null) {
          oprot.writeFieldBegin(OBJ_TO_REFRESH_FIELD_DESC);
          struct.objToRefresh.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.authorizer != null) {
          oprot.writeFieldBegin(AUTHORIZER_FIELD_DESC);
          oprot.writeString(struct.authorizer);
          oprot.writeFieldEnd();
        }
        if (struct.grantRequest != null) {
          oprot.writeFieldBegin(GRANT_REQUEST_FIELD_DESC);
          struct.grantRequest.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class refresh_privileges_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public refresh_privileges_argsTupleScheme getScheme() {
        return new refresh_privileges_argsTupleScheme();
      }
    }

    private static class refresh_privileges_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<refresh_privileges_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, refresh_privileges_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetObjToRefresh()) {
          optionals.set(0);
        }
        if (struct.isSetAuthorizer()) {
          optionals.set(1);
        }
        if (struct.isSetGrantRequest()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetObjToRefresh()) {
          struct.objToRefresh.write(oprot);
        }
        if (struct.isSetAuthorizer()) {
          oprot.writeString(struct.authorizer);
        }
        if (struct.isSetGrantRequest()) {
          struct.grantRequest.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, refresh_privileges_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.objToRefresh = new HiveObjectRef();
          struct.objToRefresh.read(iprot);
          struct.setObjToRefreshIsSet(true);
        }
        if (incoming.get(1)) {
          struct.authorizer = iprot.readString();
          struct.setAuthorizerIsSet(true);
        }
        if (incoming.get(2)) {
          struct.grantRequest = new GrantRevokePrivilegeRequest();
          struct.grantRequest.read(iprot);
          struct.setGrantRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class refresh_privileges_result implements org.apache.thrift.TBase<refresh_privileges_result, refresh_privileges_result._Fields>, java.io.Serializable, Cloneable, Comparable<refresh_privileges_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("refresh_privileges_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new refresh_privileges_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new refresh_privileges_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable GrantRevokePrivilegeResponse success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GrantRevokePrivilegeResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(refresh_privileges_result.class, metaDataMap);
    }

    public refresh_privileges_result() {
    }

    public refresh_privileges_result(
      GrantRevokePrivilegeResponse success,
      MetaException o1)
    {
      this();
      this.success = success;
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public refresh_privileges_result(refresh_privileges_result other) {
      if (other.isSetSuccess()) {
        this.success = new GrantRevokePrivilegeResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public refresh_privileges_result deepCopy() {
      return new refresh_privileges_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public GrantRevokePrivilegeResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable GrantRevokePrivilegeResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((GrantRevokePrivilegeResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof refresh_privileges_result)
        return this.equals((refresh_privileges_result)that);
      return false;
    }

    public boolean equals(refresh_privileges_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(refresh_privileges_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("refresh_privileges_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class refresh_privileges_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public refresh_privileges_resultStandardScheme getScheme() {
        return new refresh_privileges_resultStandardScheme();
      }
    }

    private static class refresh_privileges_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<refresh_privileges_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, refresh_privileges_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new GrantRevokePrivilegeResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, refresh_privileges_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class refresh_privileges_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public refresh_privileges_resultTupleScheme getScheme() {
        return new refresh_privileges_resultTupleScheme();
      }
    }

    private static class refresh_privileges_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<refresh_privileges_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, refresh_privileges_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, refresh_privileges_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.success = new GrantRevokePrivilegeResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class set_ugi_args implements org.apache.thrift.TBase<set_ugi_args, set_ugi_args._Fields>, java.io.Serializable, Cloneable, Comparable<set_ugi_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("set_ugi_args");

    private static final org.apache.thrift.protocol.TField USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("user_name", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField GROUP_NAMES_FIELD_DESC = new org.apache.thrift.protocol.TField("group_names", org.apache.thrift.protocol.TType.LIST, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new set_ugi_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new set_ugi_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String user_name; // required
    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> group_names; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      USER_NAME((short)1, "user_name"),
      GROUP_NAMES((short)2, "group_names");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // USER_NAME
            return USER_NAME;
          case 2: // GROUP_NAMES
            return GROUP_NAMES;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.USER_NAME, new org.apache.thrift.meta_data.FieldMetaData("user_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.GROUP_NAMES, new org.apache.thrift.meta_data.FieldMetaData("group_names", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(set_ugi_args.class, metaDataMap);
    }

    public set_ugi_args() {
    }

    public set_ugi_args(
      java.lang.String user_name,
      java.util.List<java.lang.String> group_names)
    {
      this();
      this.user_name = user_name;
      this.group_names = group_names;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public set_ugi_args(set_ugi_args other) {
      if (other.isSetUser_name()) {
        this.user_name = other.user_name;
      }
      if (other.isSetGroup_names()) {
        java.util.List<java.lang.String> __this__group_names = new java.util.ArrayList<java.lang.String>(other.group_names);
        this.group_names = __this__group_names;
      }
    }

    public set_ugi_args deepCopy() {
      return new set_ugi_args(this);
    }

    @Override
    public void clear() {
      this.user_name = null;
      this.group_names = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getUser_name() {
      return this.user_name;
    }

    public void setUser_name(@org.apache.thrift.annotation.Nullable java.lang.String user_name) {
      this.user_name = user_name;
    }

    public void unsetUser_name() {
      this.user_name = null;
    }

    /** Returns true if field user_name is set (has been assigned a value) and false otherwise */
    public boolean isSetUser_name() {
      return this.user_name != null;
    }

    public void setUser_nameIsSet(boolean value) {
      if (!value) {
        this.user_name = null;
      }
    }

    public int getGroup_namesSize() {
      return (this.group_names == null) ? 0 : this.group_names.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getGroup_namesIterator() {
      return (this.group_names == null) ? null : this.group_names.iterator();
    }

    public void addToGroup_names(java.lang.String elem) {
      if (this.group_names == null) {
        this.group_names = new java.util.ArrayList<java.lang.String>();
      }
      this.group_names.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getGroup_names() {
      return this.group_names;
    }

    public void setGroup_names(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> group_names) {
      this.group_names = group_names;
    }

    public void unsetGroup_names() {
      this.group_names = null;
    }

    /** Returns true if field group_names is set (has been assigned a value) and false otherwise */
    public boolean isSetGroup_names() {
      return this.group_names != null;
    }

    public void setGroup_namesIsSet(boolean value) {
      if (!value) {
        this.group_names = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case USER_NAME:
        if (value == null) {
          unsetUser_name();
        } else {
          setUser_name((java.lang.String)value);
        }
        break;

      case GROUP_NAMES:
        if (value == null) {
          unsetGroup_names();
        } else {
          setGroup_names((java.util.List<java.lang.String>)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case USER_NAME:
        return getUser_name();

      case GROUP_NAMES:
        return getGroup_names();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case USER_NAME:
        return isSetUser_name();
      case GROUP_NAMES:
        return isSetGroup_names();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof set_ugi_args)
        return this.equals((set_ugi_args)that);
      return false;
    }

    public boolean equals(set_ugi_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_user_name = true && this.isSetUser_name();
      boolean that_present_user_name = true && that.isSetUser_name();
      if (this_present_user_name || that_present_user_name) {
        if (!(this_present_user_name && that_present_user_name))
          return false;
        if (!this.user_name.equals(that.user_name))
          return false;
      }

      boolean this_present_group_names = true && this.isSetGroup_names();
      boolean that_present_group_names = true && that.isSetGroup_names();
      if (this_present_group_names || that_present_group_names) {
        if (!(this_present_group_names && that_present_group_names))
          return false;
        if (!this.group_names.equals(that.group_names))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetUser_name()) ? 131071 : 524287);
      if (isSetUser_name())
        hashCode = hashCode * 8191 + user_name.hashCode();

      hashCode = hashCode * 8191 + ((isSetGroup_names()) ? 131071 : 524287);
      if (isSetGroup_names())
        hashCode = hashCode * 8191 + group_names.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(set_ugi_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetUser_name(), other.isSetUser_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetUser_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.user_name, other.user_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetGroup_names(), other.isSetGroup_names());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetGroup_names()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.group_names, other.group_names);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("set_ugi_args(");
      boolean first = true;

      sb.append("user_name:");
      if (this.user_name == null) {
        sb.append("null");
      } else {
        sb.append(this.user_name);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("group_names:");
      if (this.group_names == null) {
        sb.append("null");
      } else {
        sb.append(this.group_names);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class set_ugi_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public set_ugi_argsStandardScheme getScheme() {
        return new set_ugi_argsStandardScheme();
      }
    }

    private static class set_ugi_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<set_ugi_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, set_ugi_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // USER_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.user_name = iprot.readString();
                struct.setUser_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // GROUP_NAMES
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1444 = iprot.readListBegin();
                  struct.group_names = new java.util.ArrayList<java.lang.String>(_list1444.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem1445;
                  for (int _i1446 = 0; _i1446 < _list1444.size; ++_i1446)
                  {
                    _elem1445 = iprot.readString();
                    struct.group_names.add(_elem1445);
                  }
                  iprot.readListEnd();
                }
                struct.setGroup_namesIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, set_ugi_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.user_name != null) {
          oprot.writeFieldBegin(USER_NAME_FIELD_DESC);
          oprot.writeString(struct.user_name);
          oprot.writeFieldEnd();
        }
        if (struct.group_names != null) {
          oprot.writeFieldBegin(GROUP_NAMES_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.group_names.size()));
            for (java.lang.String _iter1447 : struct.group_names)
            {
              oprot.writeString(_iter1447);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class set_ugi_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public set_ugi_argsTupleScheme getScheme() {
        return new set_ugi_argsTupleScheme();
      }
    }

    private static class set_ugi_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<set_ugi_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, set_ugi_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetUser_name()) {
          optionals.set(0);
        }
        if (struct.isSetGroup_names()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetUser_name()) {
          oprot.writeString(struct.user_name);
        }
        if (struct.isSetGroup_names()) {
          {
            oprot.writeI32(struct.group_names.size());
            for (java.lang.String _iter1448 : struct.group_names)
            {
              oprot.writeString(_iter1448);
            }
          }
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, set_ugi_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.user_name = iprot.readString();
          struct.setUser_nameIsSet(true);
        }
        if (incoming.get(1)) {
          {
            org.apache.thrift.protocol.TList _list1449 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.group_names = new java.util.ArrayList<java.lang.String>(_list1449.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem1450;
            for (int _i1451 = 0; _i1451 < _list1449.size; ++_i1451)
            {
              _elem1450 = iprot.readString();
              struct.group_names.add(_elem1450);
            }
          }
          struct.setGroup_namesIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class set_ugi_result implements org.apache.thrift.TBase<set_ugi_result, set_ugi_result._Fields>, java.io.Serializable, Cloneable, Comparable<set_ugi_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("set_ugi_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new set_ugi_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new set_ugi_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(set_ugi_result.class, metaDataMap);
    }

    public set_ugi_result() {
    }

    public set_ugi_result(
      java.util.List<java.lang.String> success,
      MetaException o1)
    {
      this();
      this.success = success;
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public set_ugi_result(set_ugi_result other) {
      if (other.isSetSuccess()) {
        java.util.List<java.lang.String> __this__success = new java.util.ArrayList<java.lang.String>(other.success);
        this.success = __this__success;
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public set_ugi_result deepCopy() {
      return new set_ugi_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(java.lang.String elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<java.lang.String>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<java.lang.String>)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof set_ugi_result)
        return this.equals((set_ugi_result)that);
      return false;
    }

    public boolean equals(set_ugi_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(set_ugi_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("set_ugi_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class set_ugi_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public set_ugi_resultStandardScheme getScheme() {
        return new set_ugi_resultStandardScheme();
      }
    }

    private static class set_ugi_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<set_ugi_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, set_ugi_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1452 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<java.lang.String>(_list1452.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem1453;
                  for (int _i1454 = 0; _i1454 < _list1452.size; ++_i1454)
                  {
                    _elem1453 = iprot.readString();
                    struct.success.add(_elem1453);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, set_ugi_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.success.size()));
            for (java.lang.String _iter1455 : struct.success)
            {
              oprot.writeString(_iter1455);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class set_ugi_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public set_ugi_resultTupleScheme getScheme() {
        return new set_ugi_resultTupleScheme();
      }
    }

    private static class set_ugi_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<set_ugi_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, set_ugi_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (java.lang.String _iter1456 : struct.success)
            {
              oprot.writeString(_iter1456);
            }
          }
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, set_ugi_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list1457 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.success = new java.util.ArrayList<java.lang.String>(_list1457.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem1458;
            for (int _i1459 = 0; _i1459 < _list1457.size; ++_i1459)
            {
              _elem1458 = iprot.readString();
              struct.success.add(_elem1458);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_delegation_token_args implements org.apache.thrift.TBase<get_delegation_token_args, get_delegation_token_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_delegation_token_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_delegation_token_args");

    private static final org.apache.thrift.protocol.TField TOKEN_OWNER_FIELD_DESC = new org.apache.thrift.protocol.TField("token_owner", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField RENEWER_KERBEROS_PRINCIPAL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("renewer_kerberos_principal_name", org.apache.thrift.protocol.TType.STRING, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_delegation_token_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_delegation_token_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String token_owner; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String renewer_kerberos_principal_name; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      TOKEN_OWNER((short)1, "token_owner"),
      RENEWER_KERBEROS_PRINCIPAL_NAME((short)2, "renewer_kerberos_principal_name");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // TOKEN_OWNER
            return TOKEN_OWNER;
          case 2: // RENEWER_KERBEROS_PRINCIPAL_NAME
            return RENEWER_KERBEROS_PRINCIPAL_NAME;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.TOKEN_OWNER, new org.apache.thrift.meta_data.FieldMetaData("token_owner", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.RENEWER_KERBEROS_PRINCIPAL_NAME, new org.apache.thrift.meta_data.FieldMetaData("renewer_kerberos_principal_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_delegation_token_args.class, metaDataMap);
    }

    public get_delegation_token_args() {
    }

    public get_delegation_token_args(
      java.lang.String token_owner,
      java.lang.String renewer_kerberos_principal_name)
    {
      this();
      this.token_owner = token_owner;
      this.renewer_kerberos_principal_name = renewer_kerberos_principal_name;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_delegation_token_args(get_delegation_token_args other) {
      if (other.isSetToken_owner()) {
        this.token_owner = other.token_owner;
      }
      if (other.isSetRenewer_kerberos_principal_name()) {
        this.renewer_kerberos_principal_name = other.renewer_kerberos_principal_name;
      }
    }

    public get_delegation_token_args deepCopy() {
      return new get_delegation_token_args(this);
    }

    @Override
    public void clear() {
      this.token_owner = null;
      this.renewer_kerberos_principal_name = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getToken_owner() {
      return this.token_owner;
    }

    public void setToken_owner(@org.apache.thrift.annotation.Nullable java.lang.String token_owner) {
      this.token_owner = token_owner;
    }

    public void unsetToken_owner() {
      this.token_owner = null;
    }

    /** Returns true if field token_owner is set (has been assigned a value) and false otherwise */
    public boolean isSetToken_owner() {
      return this.token_owner != null;
    }

    public void setToken_ownerIsSet(boolean value) {
      if (!value) {
        this.token_owner = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getRenewer_kerberos_principal_name() {
      return this.renewer_kerberos_principal_name;
    }

    public void setRenewer_kerberos_principal_name(@org.apache.thrift.annotation.Nullable java.lang.String renewer_kerberos_principal_name) {
      this.renewer_kerberos_principal_name = renewer_kerberos_principal_name;
    }

    public void unsetRenewer_kerberos_principal_name() {
      this.renewer_kerberos_principal_name = null;
    }

    /** Returns true if field renewer_kerberos_principal_name is set (has been assigned a value) and false otherwise */
    public boolean isSetRenewer_kerberos_principal_name() {
      return this.renewer_kerberos_principal_name != null;
    }

    public void setRenewer_kerberos_principal_nameIsSet(boolean value) {
      if (!value) {
        this.renewer_kerberos_principal_name = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case TOKEN_OWNER:
        if (value == null) {
          unsetToken_owner();
        } else {
          setToken_owner((java.lang.String)value);
        }
        break;

      case RENEWER_KERBEROS_PRINCIPAL_NAME:
        if (value == null) {
          unsetRenewer_kerberos_principal_name();
        } else {
          setRenewer_kerberos_principal_name((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case TOKEN_OWNER:
        return getToken_owner();

      case RENEWER_KERBEROS_PRINCIPAL_NAME:
        return getRenewer_kerberos_principal_name();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case TOKEN_OWNER:
        return isSetToken_owner();
      case RENEWER_KERBEROS_PRINCIPAL_NAME:
        return isSetRenewer_kerberos_principal_name();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_delegation_token_args)
        return this.equals((get_delegation_token_args)that);
      return false;
    }

    public boolean equals(get_delegation_token_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_token_owner = true && this.isSetToken_owner();
      boolean that_present_token_owner = true && that.isSetToken_owner();
      if (this_present_token_owner || that_present_token_owner) {
        if (!(this_present_token_owner && that_present_token_owner))
          return false;
        if (!this.token_owner.equals(that.token_owner))
          return false;
      }

      boolean this_present_renewer_kerberos_principal_name = true && this.isSetRenewer_kerberos_principal_name();
      boolean that_present_renewer_kerberos_principal_name = true && that.isSetRenewer_kerberos_principal_name();
      if (this_present_renewer_kerberos_principal_name || that_present_renewer_kerberos_principal_name) {
        if (!(this_present_renewer_kerberos_principal_name && that_present_renewer_kerberos_principal_name))
          return false;
        if (!this.renewer_kerberos_principal_name.equals(that.renewer_kerberos_principal_name))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetToken_owner()) ? 131071 : 524287);
      if (isSetToken_owner())
        hashCode = hashCode * 8191 + token_owner.hashCode();

      hashCode = hashCode * 8191 + ((isSetRenewer_kerberos_principal_name()) ? 131071 : 524287);
      if (isSetRenewer_kerberos_principal_name())
        hashCode = hashCode * 8191 + renewer_kerberos_principal_name.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_delegation_token_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetToken_owner(), other.isSetToken_owner());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetToken_owner()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.token_owner, other.token_owner);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetRenewer_kerberos_principal_name(), other.isSetRenewer_kerberos_principal_name());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRenewer_kerberos_principal_name()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.renewer_kerberos_principal_name, other.renewer_kerberos_principal_name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_delegation_token_args(");
      boolean first = true;

      sb.append("token_owner:");
      if (this.token_owner == null) {
        sb.append("null");
      } else {
        sb.append(this.token_owner);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("renewer_kerberos_principal_name:");
      if (this.renewer_kerberos_principal_name == null) {
        sb.append("null");
      } else {
        sb.append(this.renewer_kerberos_principal_name);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_delegation_token_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_delegation_token_argsStandardScheme getScheme() {
        return new get_delegation_token_argsStandardScheme();
      }
    }

    private static class get_delegation_token_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_delegation_token_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_delegation_token_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // TOKEN_OWNER
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.token_owner = iprot.readString();
                struct.setToken_ownerIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // RENEWER_KERBEROS_PRINCIPAL_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.renewer_kerberos_principal_name = iprot.readString();
                struct.setRenewer_kerberos_principal_nameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_delegation_token_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.token_owner != null) {
          oprot.writeFieldBegin(TOKEN_OWNER_FIELD_DESC);
          oprot.writeString(struct.token_owner);
          oprot.writeFieldEnd();
        }
        if (struct.renewer_kerberos_principal_name != null) {
          oprot.writeFieldBegin(RENEWER_KERBEROS_PRINCIPAL_NAME_FIELD_DESC);
          oprot.writeString(struct.renewer_kerberos_principal_name);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_delegation_token_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_delegation_token_argsTupleScheme getScheme() {
        return new get_delegation_token_argsTupleScheme();
      }
    }

    private static class get_delegation_token_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_delegation_token_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_delegation_token_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetToken_owner()) {
          optionals.set(0);
        }
        if (struct.isSetRenewer_kerberos_principal_name()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetToken_owner()) {
          oprot.writeString(struct.token_owner);
        }
        if (struct.isSetRenewer_kerberos_principal_name()) {
          oprot.writeString(struct.renewer_kerberos_principal_name);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_delegation_token_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.token_owner = iprot.readString();
          struct.setToken_ownerIsSet(true);
        }
        if (incoming.get(1)) {
          struct.renewer_kerberos_principal_name = iprot.readString();
          struct.setRenewer_kerberos_principal_nameIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_delegation_token_result implements org.apache.thrift.TBase<get_delegation_token_result, get_delegation_token_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_delegation_token_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_delegation_token_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_delegation_token_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_delegation_token_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_delegation_token_result.class, metaDataMap);
    }

    public get_delegation_token_result() {
    }

    public get_delegation_token_result(
      java.lang.String success,
      MetaException o1)
    {
      this();
      this.success = success;
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_delegation_token_result(get_delegation_token_result other) {
      if (other.isSetSuccess()) {
        this.success = other.success;
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public get_delegation_token_result deepCopy() {
      return new get_delegation_token_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.lang.String success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.lang.String)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_delegation_token_result)
        return this.equals((get_delegation_token_result)that);
      return false;
    }

    public boolean equals(get_delegation_token_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_delegation_token_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_delegation_token_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_delegation_token_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_delegation_token_resultStandardScheme getScheme() {
        return new get_delegation_token_resultStandardScheme();
      }
    }

    private static class get_delegation_token_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_delegation_token_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_delegation_token_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.success = iprot.readString();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_delegation_token_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeString(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_delegation_token_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_delegation_token_resultTupleScheme getScheme() {
        return new get_delegation_token_resultTupleScheme();
      }
    }

    private static class get_delegation_token_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_delegation_token_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_delegation_token_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          oprot.writeString(struct.success);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_delegation_token_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.success = iprot.readString();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class renew_delegation_token_args implements org.apache.thrift.TBase<renew_delegation_token_args, renew_delegation_token_args._Fields>, java.io.Serializable, Cloneable, Comparable<renew_delegation_token_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("renew_delegation_token_args");

    private static final org.apache.thrift.protocol.TField TOKEN_STR_FORM_FIELD_DESC = new org.apache.thrift.protocol.TField("token_str_form", org.apache.thrift.protocol.TType.STRING, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new renew_delegation_token_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new renew_delegation_token_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String token_str_form; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      TOKEN_STR_FORM((short)1, "token_str_form");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // TOKEN_STR_FORM
            return TOKEN_STR_FORM;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.TOKEN_STR_FORM, new org.apache.thrift.meta_data.FieldMetaData("token_str_form", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(renew_delegation_token_args.class, metaDataMap);
    }

    public renew_delegation_token_args() {
    }

    public renew_delegation_token_args(
      java.lang.String token_str_form)
    {
      this();
      this.token_str_form = token_str_form;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public renew_delegation_token_args(renew_delegation_token_args other) {
      if (other.isSetToken_str_form()) {
        this.token_str_form = other.token_str_form;
      }
    }

    public renew_delegation_token_args deepCopy() {
      return new renew_delegation_token_args(this);
    }

    @Override
    public void clear() {
      this.token_str_form = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getToken_str_form() {
      return this.token_str_form;
    }

    public void setToken_str_form(@org.apache.thrift.annotation.Nullable java.lang.String token_str_form) {
      this.token_str_form = token_str_form;
    }

    public void unsetToken_str_form() {
      this.token_str_form = null;
    }

    /** Returns true if field token_str_form is set (has been assigned a value) and false otherwise */
    public boolean isSetToken_str_form() {
      return this.token_str_form != null;
    }

    public void setToken_str_formIsSet(boolean value) {
      if (!value) {
        this.token_str_form = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case TOKEN_STR_FORM:
        if (value == null) {
          unsetToken_str_form();
        } else {
          setToken_str_form((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case TOKEN_STR_FORM:
        return getToken_str_form();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case TOKEN_STR_FORM:
        return isSetToken_str_form();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof renew_delegation_token_args)
        return this.equals((renew_delegation_token_args)that);
      return false;
    }

    public boolean equals(renew_delegation_token_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_token_str_form = true && this.isSetToken_str_form();
      boolean that_present_token_str_form = true && that.isSetToken_str_form();
      if (this_present_token_str_form || that_present_token_str_form) {
        if (!(this_present_token_str_form && that_present_token_str_form))
          return false;
        if (!this.token_str_form.equals(that.token_str_form))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetToken_str_form()) ? 131071 : 524287);
      if (isSetToken_str_form())
        hashCode = hashCode * 8191 + token_str_form.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(renew_delegation_token_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetToken_str_form(), other.isSetToken_str_form());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetToken_str_form()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.token_str_form, other.token_str_form);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("renew_delegation_token_args(");
      boolean first = true;

      sb.append("token_str_form:");
      if (this.token_str_form == null) {
        sb.append("null");
      } else {
        sb.append(this.token_str_form);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class renew_delegation_token_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public renew_delegation_token_argsStandardScheme getScheme() {
        return new renew_delegation_token_argsStandardScheme();
      }
    }

    private static class renew_delegation_token_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<renew_delegation_token_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, renew_delegation_token_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // TOKEN_STR_FORM
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.token_str_form = iprot.readString();
                struct.setToken_str_formIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, renew_delegation_token_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.token_str_form != null) {
          oprot.writeFieldBegin(TOKEN_STR_FORM_FIELD_DESC);
          oprot.writeString(struct.token_str_form);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class renew_delegation_token_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public renew_delegation_token_argsTupleScheme getScheme() {
        return new renew_delegation_token_argsTupleScheme();
      }
    }

    private static class renew_delegation_token_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<renew_delegation_token_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, renew_delegation_token_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetToken_str_form()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetToken_str_form()) {
          oprot.writeString(struct.token_str_form);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, renew_delegation_token_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.token_str_form = iprot.readString();
          struct.setToken_str_formIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class renew_delegation_token_result implements org.apache.thrift.TBase<renew_delegation_token_result, renew_delegation_token_result._Fields>, java.io.Serializable, Cloneable, Comparable<renew_delegation_token_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("renew_delegation_token_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.I64, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new renew_delegation_token_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new renew_delegation_token_resultTupleSchemeFactory();

    private long success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(renew_delegation_token_result.class, metaDataMap);
    }

    public renew_delegation_token_result() {
    }

    public renew_delegation_token_result(
      long success,
      MetaException o1)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public renew_delegation_token_result(renew_delegation_token_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public renew_delegation_token_result deepCopy() {
      return new renew_delegation_token_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = 0;
      this.o1 = null;
    }

    public long getSuccess() {
      return this.success;
    }

    public void setSuccess(long success) {
      this.success = success;
      setSuccessIsSet(true);
    }

    public void unsetSuccess() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.lang.Long)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof renew_delegation_token_result)
        return this.equals((renew_delegation_token_result)that);
      return false;
    }

    public boolean equals(renew_delegation_token_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(success);

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(renew_delegation_token_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("renew_delegation_token_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class renew_delegation_token_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public renew_delegation_token_resultStandardScheme getScheme() {
        return new renew_delegation_token_resultStandardScheme();
      }
    }

    private static class renew_delegation_token_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<renew_delegation_token_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, renew_delegation_token_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
                struct.success = iprot.readI64();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, renew_delegation_token_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeI64(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class renew_delegation_token_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public renew_delegation_token_resultTupleScheme getScheme() {
        return new renew_delegation_token_resultTupleScheme();
      }
    }

    private static class renew_delegation_token_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<renew_delegation_token_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, renew_delegation_token_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          oprot.writeI64(struct.success);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, renew_delegation_token_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.success = iprot.readI64();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class cancel_delegation_token_args implements org.apache.thrift.TBase<cancel_delegation_token_args, cancel_delegation_token_args._Fields>, java.io.Serializable, Cloneable, Comparable<cancel_delegation_token_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("cancel_delegation_token_args");

    private static final org.apache.thrift.protocol.TField TOKEN_STR_FORM_FIELD_DESC = new org.apache.thrift.protocol.TField("token_str_form", org.apache.thrift.protocol.TType.STRING, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new cancel_delegation_token_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new cancel_delegation_token_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String token_str_form; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      TOKEN_STR_FORM((short)1, "token_str_form");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // TOKEN_STR_FORM
            return TOKEN_STR_FORM;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.TOKEN_STR_FORM, new org.apache.thrift.meta_data.FieldMetaData("token_str_form", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(cancel_delegation_token_args.class, metaDataMap);
    }

    public cancel_delegation_token_args() {
    }

    public cancel_delegation_token_args(
      java.lang.String token_str_form)
    {
      this();
      this.token_str_form = token_str_form;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public cancel_delegation_token_args(cancel_delegation_token_args other) {
      if (other.isSetToken_str_form()) {
        this.token_str_form = other.token_str_form;
      }
    }

    public cancel_delegation_token_args deepCopy() {
      return new cancel_delegation_token_args(this);
    }

    @Override
    public void clear() {
      this.token_str_form = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getToken_str_form() {
      return this.token_str_form;
    }

    public void setToken_str_form(@org.apache.thrift.annotation.Nullable java.lang.String token_str_form) {
      this.token_str_form = token_str_form;
    }

    public void unsetToken_str_form() {
      this.token_str_form = null;
    }

    /** Returns true if field token_str_form is set (has been assigned a value) and false otherwise */
    public boolean isSetToken_str_form() {
      return this.token_str_form != null;
    }

    public void setToken_str_formIsSet(boolean value) {
      if (!value) {
        this.token_str_form = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case TOKEN_STR_FORM:
        if (value == null) {
          unsetToken_str_form();
        } else {
          setToken_str_form((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case TOKEN_STR_FORM:
        return getToken_str_form();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case TOKEN_STR_FORM:
        return isSetToken_str_form();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof cancel_delegation_token_args)
        return this.equals((cancel_delegation_token_args)that);
      return false;
    }

    public boolean equals(cancel_delegation_token_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_token_str_form = true && this.isSetToken_str_form();
      boolean that_present_token_str_form = true && that.isSetToken_str_form();
      if (this_present_token_str_form || that_present_token_str_form) {
        if (!(this_present_token_str_form && that_present_token_str_form))
          return false;
        if (!this.token_str_form.equals(that.token_str_form))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetToken_str_form()) ? 131071 : 524287);
      if (isSetToken_str_form())
        hashCode = hashCode * 8191 + token_str_form.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(cancel_delegation_token_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetToken_str_form(), other.isSetToken_str_form());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetToken_str_form()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.token_str_form, other.token_str_form);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("cancel_delegation_token_args(");
      boolean first = true;

      sb.append("token_str_form:");
      if (this.token_str_form == null) {
        sb.append("null");
      } else {
        sb.append(this.token_str_form);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class cancel_delegation_token_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public cancel_delegation_token_argsStandardScheme getScheme() {
        return new cancel_delegation_token_argsStandardScheme();
      }
    }

    private static class cancel_delegation_token_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<cancel_delegation_token_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, cancel_delegation_token_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // TOKEN_STR_FORM
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.token_str_form = iprot.readString();
                struct.setToken_str_formIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, cancel_delegation_token_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.token_str_form != null) {
          oprot.writeFieldBegin(TOKEN_STR_FORM_FIELD_DESC);
          oprot.writeString(struct.token_str_form);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class cancel_delegation_token_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public cancel_delegation_token_argsTupleScheme getScheme() {
        return new cancel_delegation_token_argsTupleScheme();
      }
    }

    private static class cancel_delegation_token_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<cancel_delegation_token_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, cancel_delegation_token_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetToken_str_form()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetToken_str_form()) {
          oprot.writeString(struct.token_str_form);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, cancel_delegation_token_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.token_str_form = iprot.readString();
          struct.setToken_str_formIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class cancel_delegation_token_result implements org.apache.thrift.TBase<cancel_delegation_token_result, cancel_delegation_token_result._Fields>, java.io.Serializable, Cloneable, Comparable<cancel_delegation_token_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("cancel_delegation_token_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new cancel_delegation_token_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new cancel_delegation_token_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(cancel_delegation_token_result.class, metaDataMap);
    }

    public cancel_delegation_token_result() {
    }

    public cancel_delegation_token_result(
      MetaException o1)
    {
      this();
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public cancel_delegation_token_result(cancel_delegation_token_result other) {
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public cancel_delegation_token_result deepCopy() {
      return new cancel_delegation_token_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof cancel_delegation_token_result)
        return this.equals((cancel_delegation_token_result)that);
      return false;
    }

    public boolean equals(cancel_delegation_token_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(cancel_delegation_token_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("cancel_delegation_token_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class cancel_delegation_token_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public cancel_delegation_token_resultStandardScheme getScheme() {
        return new cancel_delegation_token_resultStandardScheme();
      }
    }

    private static class cancel_delegation_token_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<cancel_delegation_token_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, cancel_delegation_token_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, cancel_delegation_token_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class cancel_delegation_token_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public cancel_delegation_token_resultTupleScheme getScheme() {
        return new cancel_delegation_token_resultTupleScheme();
      }
    }

    private static class cancel_delegation_token_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<cancel_delegation_token_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, cancel_delegation_token_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, cancel_delegation_token_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_token_args implements org.apache.thrift.TBase<add_token_args, add_token_args._Fields>, java.io.Serializable, Cloneable, Comparable<add_token_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("add_token_args");

    private static final org.apache.thrift.protocol.TField TOKEN_IDENTIFIER_FIELD_DESC = new org.apache.thrift.protocol.TField("token_identifier", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField DELEGATION_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("delegation_token", org.apache.thrift.protocol.TType.STRING, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new add_token_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new add_token_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String token_identifier; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String delegation_token; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      TOKEN_IDENTIFIER((short)1, "token_identifier"),
      DELEGATION_TOKEN((short)2, "delegation_token");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // TOKEN_IDENTIFIER
            return TOKEN_IDENTIFIER;
          case 2: // DELEGATION_TOKEN
            return DELEGATION_TOKEN;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.TOKEN_IDENTIFIER, new org.apache.thrift.meta_data.FieldMetaData("token_identifier", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.DELEGATION_TOKEN, new org.apache.thrift.meta_data.FieldMetaData("delegation_token", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(add_token_args.class, metaDataMap);
    }

    public add_token_args() {
    }

    public add_token_args(
      java.lang.String token_identifier,
      java.lang.String delegation_token)
    {
      this();
      this.token_identifier = token_identifier;
      this.delegation_token = delegation_token;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public add_token_args(add_token_args other) {
      if (other.isSetToken_identifier()) {
        this.token_identifier = other.token_identifier;
      }
      if (other.isSetDelegation_token()) {
        this.delegation_token = other.delegation_token;
      }
    }

    public add_token_args deepCopy() {
      return new add_token_args(this);
    }

    @Override
    public void clear() {
      this.token_identifier = null;
      this.delegation_token = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getToken_identifier() {
      return this.token_identifier;
    }

    public void setToken_identifier(@org.apache.thrift.annotation.Nullable java.lang.String token_identifier) {
      this.token_identifier = token_identifier;
    }

    public void unsetToken_identifier() {
      this.token_identifier = null;
    }

    /** Returns true if field token_identifier is set (has been assigned a value) and false otherwise */
    public boolean isSetToken_identifier() {
      return this.token_identifier != null;
    }

    public void setToken_identifierIsSet(boolean value) {
      if (!value) {
        this.token_identifier = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDelegation_token() {
      return this.delegation_token;
    }

    public void setDelegation_token(@org.apache.thrift.annotation.Nullable java.lang.String delegation_token) {
      this.delegation_token = delegation_token;
    }

    public void unsetDelegation_token() {
      this.delegation_token = null;
    }

    /** Returns true if field delegation_token is set (has been assigned a value) and false otherwise */
    public boolean isSetDelegation_token() {
      return this.delegation_token != null;
    }

    public void setDelegation_tokenIsSet(boolean value) {
      if (!value) {
        this.delegation_token = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case TOKEN_IDENTIFIER:
        if (value == null) {
          unsetToken_identifier();
        } else {
          setToken_identifier((java.lang.String)value);
        }
        break;

      case DELEGATION_TOKEN:
        if (value == null) {
          unsetDelegation_token();
        } else {
          setDelegation_token((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case TOKEN_IDENTIFIER:
        return getToken_identifier();

      case DELEGATION_TOKEN:
        return getDelegation_token();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case TOKEN_IDENTIFIER:
        return isSetToken_identifier();
      case DELEGATION_TOKEN:
        return isSetDelegation_token();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof add_token_args)
        return this.equals((add_token_args)that);
      return false;
    }

    public boolean equals(add_token_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_token_identifier = true && this.isSetToken_identifier();
      boolean that_present_token_identifier = true && that.isSetToken_identifier();
      if (this_present_token_identifier || that_present_token_identifier) {
        if (!(this_present_token_identifier && that_present_token_identifier))
          return false;
        if (!this.token_identifier.equals(that.token_identifier))
          return false;
      }

      boolean this_present_delegation_token = true && this.isSetDelegation_token();
      boolean that_present_delegation_token = true && that.isSetDelegation_token();
      if (this_present_delegation_token || that_present_delegation_token) {
        if (!(this_present_delegation_token && that_present_delegation_token))
          return false;
        if (!this.delegation_token.equals(that.delegation_token))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetToken_identifier()) ? 131071 : 524287);
      if (isSetToken_identifier())
        hashCode = hashCode * 8191 + token_identifier.hashCode();

      hashCode = hashCode * 8191 + ((isSetDelegation_token()) ? 131071 : 524287);
      if (isSetDelegation_token())
        hashCode = hashCode * 8191 + delegation_token.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(add_token_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetToken_identifier(), other.isSetToken_identifier());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetToken_identifier()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.token_identifier, other.token_identifier);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetDelegation_token(), other.isSetDelegation_token());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDelegation_token()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.delegation_token, other.delegation_token);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("add_token_args(");
      boolean first = true;

      sb.append("token_identifier:");
      if (this.token_identifier == null) {
        sb.append("null");
      } else {
        sb.append(this.token_identifier);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("delegation_token:");
      if (this.delegation_token == null) {
        sb.append("null");
      } else {
        sb.append(this.delegation_token);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class add_token_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_token_argsStandardScheme getScheme() {
        return new add_token_argsStandardScheme();
      }
    }

    private static class add_token_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<add_token_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, add_token_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // TOKEN_IDENTIFIER
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.token_identifier = iprot.readString();
                struct.setToken_identifierIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // DELEGATION_TOKEN
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.delegation_token = iprot.readString();
                struct.setDelegation_tokenIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, add_token_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.token_identifier != null) {
          oprot.writeFieldBegin(TOKEN_IDENTIFIER_FIELD_DESC);
          oprot.writeString(struct.token_identifier);
          oprot.writeFieldEnd();
        }
        if (struct.delegation_token != null) {
          oprot.writeFieldBegin(DELEGATION_TOKEN_FIELD_DESC);
          oprot.writeString(struct.delegation_token);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class add_token_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_token_argsTupleScheme getScheme() {
        return new add_token_argsTupleScheme();
      }
    }

    private static class add_token_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<add_token_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, add_token_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetToken_identifier()) {
          optionals.set(0);
        }
        if (struct.isSetDelegation_token()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetToken_identifier()) {
          oprot.writeString(struct.token_identifier);
        }
        if (struct.isSetDelegation_token()) {
          oprot.writeString(struct.delegation_token);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, add_token_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.token_identifier = iprot.readString();
          struct.setToken_identifierIsSet(true);
        }
        if (incoming.get(1)) {
          struct.delegation_token = iprot.readString();
          struct.setDelegation_tokenIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_token_result implements org.apache.thrift.TBase<add_token_result, add_token_result._Fields>, java.io.Serializable, Cloneable, Comparable<add_token_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("add_token_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new add_token_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new add_token_resultTupleSchemeFactory();

    private boolean success; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(add_token_result.class, metaDataMap);
    }

    public add_token_result() {
    }

    public add_token_result(
      boolean success)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public add_token_result(add_token_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
    }

    public add_token_result deepCopy() {
      return new add_token_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = false;
    }

    public boolean isSuccess() {
      return this.success;
    }

    public void setSuccess(boolean success) {
      this.success = success;
      setSuccessIsSet(true);
    }

    public void unsetSuccess() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.lang.Boolean)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return isSuccess();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof add_token_result)
        return this.equals((add_token_result)that);
      return false;
    }

    public boolean equals(add_token_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);

      return hashCode;
    }

    @Override
    public int compareTo(add_token_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("add_token_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class add_token_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_token_resultStandardScheme getScheme() {
        return new add_token_resultStandardScheme();
      }
    }

    private static class add_token_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<add_token_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, add_token_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.success = iprot.readBool();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, add_token_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeBool(struct.success);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class add_token_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_token_resultTupleScheme getScheme() {
        return new add_token_resultTupleScheme();
      }
    }

    private static class add_token_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<add_token_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, add_token_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSuccess()) {
          oprot.writeBool(struct.success);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, add_token_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.success = iprot.readBool();
          struct.setSuccessIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class remove_token_args implements org.apache.thrift.TBase<remove_token_args, remove_token_args._Fields>, java.io.Serializable, Cloneable, Comparable<remove_token_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("remove_token_args");

    private static final org.apache.thrift.protocol.TField TOKEN_IDENTIFIER_FIELD_DESC = new org.apache.thrift.protocol.TField("token_identifier", org.apache.thrift.protocol.TType.STRING, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new remove_token_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new remove_token_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String token_identifier; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      TOKEN_IDENTIFIER((short)1, "token_identifier");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // TOKEN_IDENTIFIER
            return TOKEN_IDENTIFIER;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.TOKEN_IDENTIFIER, new org.apache.thrift.meta_data.FieldMetaData("token_identifier", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(remove_token_args.class, metaDataMap);
    }

    public remove_token_args() {
    }

    public remove_token_args(
      java.lang.String token_identifier)
    {
      this();
      this.token_identifier = token_identifier;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public remove_token_args(remove_token_args other) {
      if (other.isSetToken_identifier()) {
        this.token_identifier = other.token_identifier;
      }
    }

    public remove_token_args deepCopy() {
      return new remove_token_args(this);
    }

    @Override
    public void clear() {
      this.token_identifier = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getToken_identifier() {
      return this.token_identifier;
    }

    public void setToken_identifier(@org.apache.thrift.annotation.Nullable java.lang.String token_identifier) {
      this.token_identifier = token_identifier;
    }

    public void unsetToken_identifier() {
      this.token_identifier = null;
    }

    /** Returns true if field token_identifier is set (has been assigned a value) and false otherwise */
    public boolean isSetToken_identifier() {
      return this.token_identifier != null;
    }

    public void setToken_identifierIsSet(boolean value) {
      if (!value) {
        this.token_identifier = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case TOKEN_IDENTIFIER:
        if (value == null) {
          unsetToken_identifier();
        } else {
          setToken_identifier((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case TOKEN_IDENTIFIER:
        return getToken_identifier();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case TOKEN_IDENTIFIER:
        return isSetToken_identifier();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof remove_token_args)
        return this.equals((remove_token_args)that);
      return false;
    }

    public boolean equals(remove_token_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_token_identifier = true && this.isSetToken_identifier();
      boolean that_present_token_identifier = true && that.isSetToken_identifier();
      if (this_present_token_identifier || that_present_token_identifier) {
        if (!(this_present_token_identifier && that_present_token_identifier))
          return false;
        if (!this.token_identifier.equals(that.token_identifier))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetToken_identifier()) ? 131071 : 524287);
      if (isSetToken_identifier())
        hashCode = hashCode * 8191 + token_identifier.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(remove_token_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetToken_identifier(), other.isSetToken_identifier());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetToken_identifier()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.token_identifier, other.token_identifier);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("remove_token_args(");
      boolean first = true;

      sb.append("token_identifier:");
      if (this.token_identifier == null) {
        sb.append("null");
      } else {
        sb.append(this.token_identifier);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class remove_token_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public remove_token_argsStandardScheme getScheme() {
        return new remove_token_argsStandardScheme();
      }
    }

    private static class remove_token_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<remove_token_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, remove_token_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // TOKEN_IDENTIFIER
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.token_identifier = iprot.readString();
                struct.setToken_identifierIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, remove_token_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.token_identifier != null) {
          oprot.writeFieldBegin(TOKEN_IDENTIFIER_FIELD_DESC);
          oprot.writeString(struct.token_identifier);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class remove_token_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public remove_token_argsTupleScheme getScheme() {
        return new remove_token_argsTupleScheme();
      }
    }

    private static class remove_token_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<remove_token_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, remove_token_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetToken_identifier()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetToken_identifier()) {
          oprot.writeString(struct.token_identifier);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, remove_token_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.token_identifier = iprot.readString();
          struct.setToken_identifierIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class remove_token_result implements org.apache.thrift.TBase<remove_token_result, remove_token_result._Fields>, java.io.Serializable, Cloneable, Comparable<remove_token_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("remove_token_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new remove_token_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new remove_token_resultTupleSchemeFactory();

    private boolean success; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(remove_token_result.class, metaDataMap);
    }

    public remove_token_result() {
    }

    public remove_token_result(
      boolean success)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public remove_token_result(remove_token_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
    }

    public remove_token_result deepCopy() {
      return new remove_token_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = false;
    }

    public boolean isSuccess() {
      return this.success;
    }

    public void setSuccess(boolean success) {
      this.success = success;
      setSuccessIsSet(true);
    }

    public void unsetSuccess() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.lang.Boolean)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return isSuccess();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof remove_token_result)
        return this.equals((remove_token_result)that);
      return false;
    }

    public boolean equals(remove_token_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);

      return hashCode;
    }

    @Override
    public int compareTo(remove_token_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("remove_token_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class remove_token_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public remove_token_resultStandardScheme getScheme() {
        return new remove_token_resultStandardScheme();
      }
    }

    private static class remove_token_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<remove_token_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, remove_token_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.success = iprot.readBool();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, remove_token_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeBool(struct.success);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class remove_token_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public remove_token_resultTupleScheme getScheme() {
        return new remove_token_resultTupleScheme();
      }
    }

    private static class remove_token_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<remove_token_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, remove_token_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSuccess()) {
          oprot.writeBool(struct.success);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, remove_token_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.success = iprot.readBool();
          struct.setSuccessIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_token_args implements org.apache.thrift.TBase<get_token_args, get_token_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_token_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_token_args");

    private static final org.apache.thrift.protocol.TField TOKEN_IDENTIFIER_FIELD_DESC = new org.apache.thrift.protocol.TField("token_identifier", org.apache.thrift.protocol.TType.STRING, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_token_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_token_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String token_identifier; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      TOKEN_IDENTIFIER((short)1, "token_identifier");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // TOKEN_IDENTIFIER
            return TOKEN_IDENTIFIER;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.TOKEN_IDENTIFIER, new org.apache.thrift.meta_data.FieldMetaData("token_identifier", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_token_args.class, metaDataMap);
    }

    public get_token_args() {
    }

    public get_token_args(
      java.lang.String token_identifier)
    {
      this();
      this.token_identifier = token_identifier;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_token_args(get_token_args other) {
      if (other.isSetToken_identifier()) {
        this.token_identifier = other.token_identifier;
      }
    }

    public get_token_args deepCopy() {
      return new get_token_args(this);
    }

    @Override
    public void clear() {
      this.token_identifier = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getToken_identifier() {
      return this.token_identifier;
    }

    public void setToken_identifier(@org.apache.thrift.annotation.Nullable java.lang.String token_identifier) {
      this.token_identifier = token_identifier;
    }

    public void unsetToken_identifier() {
      this.token_identifier = null;
    }

    /** Returns true if field token_identifier is set (has been assigned a value) and false otherwise */
    public boolean isSetToken_identifier() {
      return this.token_identifier != null;
    }

    public void setToken_identifierIsSet(boolean value) {
      if (!value) {
        this.token_identifier = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case TOKEN_IDENTIFIER:
        if (value == null) {
          unsetToken_identifier();
        } else {
          setToken_identifier((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case TOKEN_IDENTIFIER:
        return getToken_identifier();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case TOKEN_IDENTIFIER:
        return isSetToken_identifier();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_token_args)
        return this.equals((get_token_args)that);
      return false;
    }

    public boolean equals(get_token_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_token_identifier = true && this.isSetToken_identifier();
      boolean that_present_token_identifier = true && that.isSetToken_identifier();
      if (this_present_token_identifier || that_present_token_identifier) {
        if (!(this_present_token_identifier && that_present_token_identifier))
          return false;
        if (!this.token_identifier.equals(that.token_identifier))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetToken_identifier()) ? 131071 : 524287);
      if (isSetToken_identifier())
        hashCode = hashCode * 8191 + token_identifier.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_token_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetToken_identifier(), other.isSetToken_identifier());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetToken_identifier()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.token_identifier, other.token_identifier);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_token_args(");
      boolean first = true;

      sb.append("token_identifier:");
      if (this.token_identifier == null) {
        sb.append("null");
      } else {
        sb.append(this.token_identifier);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_token_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_token_argsStandardScheme getScheme() {
        return new get_token_argsStandardScheme();
      }
    }

    private static class get_token_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_token_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_token_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // TOKEN_IDENTIFIER
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.token_identifier = iprot.readString();
                struct.setToken_identifierIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_token_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.token_identifier != null) {
          oprot.writeFieldBegin(TOKEN_IDENTIFIER_FIELD_DESC);
          oprot.writeString(struct.token_identifier);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_token_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_token_argsTupleScheme getScheme() {
        return new get_token_argsTupleScheme();
      }
    }

    private static class get_token_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_token_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_token_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetToken_identifier()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetToken_identifier()) {
          oprot.writeString(struct.token_identifier);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_token_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.token_identifier = iprot.readString();
          struct.setToken_identifierIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_token_result implements org.apache.thrift.TBase<get_token_result, get_token_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_token_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_token_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_token_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_token_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String success; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_token_result.class, metaDataMap);
    }

    public get_token_result() {
    }

    public get_token_result(
      java.lang.String success)
    {
      this();
      this.success = success;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_token_result(get_token_result other) {
      if (other.isSetSuccess()) {
        this.success = other.success;
      }
    }

    public get_token_result deepCopy() {
      return new get_token_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.lang.String success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_token_result)
        return this.equals((get_token_result)that);
      return false;
    }

    public boolean equals(get_token_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_token_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_token_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_token_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_token_resultStandardScheme getScheme() {
        return new get_token_resultStandardScheme();
      }
    }

    private static class get_token_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_token_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_token_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.success = iprot.readString();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_token_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeString(struct.success);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_token_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_token_resultTupleScheme getScheme() {
        return new get_token_resultTupleScheme();
      }
    }

    private static class get_token_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_token_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_token_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSuccess()) {
          oprot.writeString(struct.success);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_token_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.success = iprot.readString();
          struct.setSuccessIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_all_token_identifiers_args implements org.apache.thrift.TBase<get_all_token_identifiers_args, get_all_token_identifiers_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_all_token_identifiers_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_all_token_identifiers_args");


    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_all_token_identifiers_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_all_token_identifiers_argsTupleSchemeFactory();


    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
;

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_all_token_identifiers_args.class, metaDataMap);
    }

    public get_all_token_identifiers_args() {
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_all_token_identifiers_args(get_all_token_identifiers_args other) {
    }

    public get_all_token_identifiers_args deepCopy() {
      return new get_all_token_identifiers_args(this);
    }

    @Override
    public void clear() {
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_all_token_identifiers_args)
        return this.equals((get_all_token_identifiers_args)that);
      return false;
    }

    public boolean equals(get_all_token_identifiers_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      return hashCode;
    }

    @Override
    public int compareTo(get_all_token_identifiers_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_all_token_identifiers_args(");
      boolean first = true;

      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_all_token_identifiers_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_all_token_identifiers_argsStandardScheme getScheme() {
        return new get_all_token_identifiers_argsStandardScheme();
      }
    }

    private static class get_all_token_identifiers_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_all_token_identifiers_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_all_token_identifiers_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_all_token_identifiers_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_all_token_identifiers_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_all_token_identifiers_argsTupleScheme getScheme() {
        return new get_all_token_identifiers_argsTupleScheme();
      }
    }

    private static class get_all_token_identifiers_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_all_token_identifiers_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_all_token_identifiers_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_all_token_identifiers_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_all_token_identifiers_result implements org.apache.thrift.TBase<get_all_token_identifiers_result, get_all_token_identifiers_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_all_token_identifiers_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_all_token_identifiers_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_all_token_identifiers_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_all_token_identifiers_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> success; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_all_token_identifiers_result.class, metaDataMap);
    }

    public get_all_token_identifiers_result() {
    }

    public get_all_token_identifiers_result(
      java.util.List<java.lang.String> success)
    {
      this();
      this.success = success;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_all_token_identifiers_result(get_all_token_identifiers_result other) {
      if (other.isSetSuccess()) {
        java.util.List<java.lang.String> __this__success = new java.util.ArrayList<java.lang.String>(other.success);
        this.success = __this__success;
      }
    }

    public get_all_token_identifiers_result deepCopy() {
      return new get_all_token_identifiers_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(java.lang.String elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<java.lang.String>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<java.lang.String>)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_all_token_identifiers_result)
        return this.equals((get_all_token_identifiers_result)that);
      return false;
    }

    public boolean equals(get_all_token_identifiers_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_all_token_identifiers_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_all_token_identifiers_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_all_token_identifiers_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_all_token_identifiers_resultStandardScheme getScheme() {
        return new get_all_token_identifiers_resultStandardScheme();
      }
    }

    private static class get_all_token_identifiers_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_all_token_identifiers_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_all_token_identifiers_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1460 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<java.lang.String>(_list1460.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem1461;
                  for (int _i1462 = 0; _i1462 < _list1460.size; ++_i1462)
                  {
                    _elem1461 = iprot.readString();
                    struct.success.add(_elem1461);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_all_token_identifiers_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.success.size()));
            for (java.lang.String _iter1463 : struct.success)
            {
              oprot.writeString(_iter1463);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_all_token_identifiers_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_all_token_identifiers_resultTupleScheme getScheme() {
        return new get_all_token_identifiers_resultTupleScheme();
      }
    }

    private static class get_all_token_identifiers_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_all_token_identifiers_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_all_token_identifiers_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (java.lang.String _iter1464 : struct.success)
            {
              oprot.writeString(_iter1464);
            }
          }
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_all_token_identifiers_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list1465 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.success = new java.util.ArrayList<java.lang.String>(_list1465.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem1466;
            for (int _i1467 = 0; _i1467 < _list1465.size; ++_i1467)
            {
              _elem1466 = iprot.readString();
              struct.success.add(_elem1466);
            }
          }
          struct.setSuccessIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_master_key_args implements org.apache.thrift.TBase<add_master_key_args, add_master_key_args._Fields>, java.io.Serializable, Cloneable, Comparable<add_master_key_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("add_master_key_args");

    private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField("key", org.apache.thrift.protocol.TType.STRING, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new add_master_key_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new add_master_key_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String key; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      KEY((short)1, "key");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // KEY
            return KEY;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.KEY, new org.apache.thrift.meta_data.FieldMetaData("key", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(add_master_key_args.class, metaDataMap);
    }

    public add_master_key_args() {
    }

    public add_master_key_args(
      java.lang.String key)
    {
      this();
      this.key = key;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public add_master_key_args(add_master_key_args other) {
      if (other.isSetKey()) {
        this.key = other.key;
      }
    }

    public add_master_key_args deepCopy() {
      return new add_master_key_args(this);
    }

    @Override
    public void clear() {
      this.key = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getKey() {
      return this.key;
    }

    public void setKey(@org.apache.thrift.annotation.Nullable java.lang.String key) {
      this.key = key;
    }

    public void unsetKey() {
      this.key = null;
    }

    /** Returns true if field key is set (has been assigned a value) and false otherwise */
    public boolean isSetKey() {
      return this.key != null;
    }

    public void setKeyIsSet(boolean value) {
      if (!value) {
        this.key = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case KEY:
        if (value == null) {
          unsetKey();
        } else {
          setKey((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case KEY:
        return getKey();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case KEY:
        return isSetKey();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof add_master_key_args)
        return this.equals((add_master_key_args)that);
      return false;
    }

    public boolean equals(add_master_key_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_key = true && this.isSetKey();
      boolean that_present_key = true && that.isSetKey();
      if (this_present_key || that_present_key) {
        if (!(this_present_key && that_present_key))
          return false;
        if (!this.key.equals(that.key))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
      if (isSetKey())
        hashCode = hashCode * 8191 + key.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(add_master_key_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetKey(), other.isSetKey());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetKey()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.key, other.key);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("add_master_key_args(");
      boolean first = true;

      sb.append("key:");
      if (this.key == null) {
        sb.append("null");
      } else {
        sb.append(this.key);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class add_master_key_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_master_key_argsStandardScheme getScheme() {
        return new add_master_key_argsStandardScheme();
      }
    }

    private static class add_master_key_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<add_master_key_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, add_master_key_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // KEY
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.key = iprot.readString();
                struct.setKeyIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, add_master_key_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.key != null) {
          oprot.writeFieldBegin(KEY_FIELD_DESC);
          oprot.writeString(struct.key);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class add_master_key_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_master_key_argsTupleScheme getScheme() {
        return new add_master_key_argsTupleScheme();
      }
    }

    private static class add_master_key_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<add_master_key_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, add_master_key_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetKey()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetKey()) {
          oprot.writeString(struct.key);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, add_master_key_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.key = iprot.readString();
          struct.setKeyIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_master_key_result implements org.apache.thrift.TBase<add_master_key_result, add_master_key_result._Fields>, java.io.Serializable, Cloneable, Comparable<add_master_key_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("add_master_key_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.I32, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new add_master_key_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new add_master_key_resultTupleSchemeFactory();

    private int success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(add_master_key_result.class, metaDataMap);
    }

    public add_master_key_result() {
    }

    public add_master_key_result(
      int success,
      MetaException o1)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public add_master_key_result(add_master_key_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public add_master_key_result deepCopy() {
      return new add_master_key_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = 0;
      this.o1 = null;
    }

    public int getSuccess() {
      return this.success;
    }

    public void setSuccess(int success) {
      this.success = success;
      setSuccessIsSet(true);
    }

    public void unsetSuccess() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.lang.Integer)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof add_master_key_result)
        return this.equals((add_master_key_result)that);
      return false;
    }

    public boolean equals(add_master_key_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + success;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(add_master_key_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("add_master_key_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class add_master_key_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_master_key_resultStandardScheme getScheme() {
        return new add_master_key_resultStandardScheme();
      }
    }

    private static class add_master_key_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<add_master_key_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, add_master_key_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
                struct.success = iprot.readI32();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, add_master_key_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeI32(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class add_master_key_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_master_key_resultTupleScheme getScheme() {
        return new add_master_key_resultTupleScheme();
      }
    }

    private static class add_master_key_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<add_master_key_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, add_master_key_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          oprot.writeI32(struct.success);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, add_master_key_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.success = iprot.readI32();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class update_master_key_args implements org.apache.thrift.TBase<update_master_key_args, update_master_key_args._Fields>, java.io.Serializable, Cloneable, Comparable<update_master_key_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("update_master_key_args");

    private static final org.apache.thrift.protocol.TField SEQ_NUMBER_FIELD_DESC = new org.apache.thrift.protocol.TField("seq_number", org.apache.thrift.protocol.TType.I32, (short)1);
    private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField("key", org.apache.thrift.protocol.TType.STRING, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new update_master_key_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new update_master_key_argsTupleSchemeFactory();

    private int seq_number; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String key; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SEQ_NUMBER((short)1, "seq_number"),
      KEY((short)2, "key");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // SEQ_NUMBER
            return SEQ_NUMBER;
          case 2: // KEY
            return KEY;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SEQ_NUMBER_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SEQ_NUMBER, new org.apache.thrift.meta_data.FieldMetaData("seq_number", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
      tmpMap.put(_Fields.KEY, new org.apache.thrift.meta_data.FieldMetaData("key", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(update_master_key_args.class, metaDataMap);
    }

    public update_master_key_args() {
    }

    public update_master_key_args(
      int seq_number,
      java.lang.String key)
    {
      this();
      this.seq_number = seq_number;
      setSeq_numberIsSet(true);
      this.key = key;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public update_master_key_args(update_master_key_args other) {
      __isset_bitfield = other.__isset_bitfield;
      this.seq_number = other.seq_number;
      if (other.isSetKey()) {
        this.key = other.key;
      }
    }

    public update_master_key_args deepCopy() {
      return new update_master_key_args(this);
    }

    @Override
    public void clear() {
      setSeq_numberIsSet(false);
      this.seq_number = 0;
      this.key = null;
    }

    public int getSeq_number() {
      return this.seq_number;
    }

    public void setSeq_number(int seq_number) {
      this.seq_number = seq_number;
      setSeq_numberIsSet(true);
    }

    public void unsetSeq_number() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SEQ_NUMBER_ISSET_ID);
    }

    /** Returns true if field seq_number is set (has been assigned a value) and false otherwise */
    public boolean isSetSeq_number() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SEQ_NUMBER_ISSET_ID);
    }

    public void setSeq_numberIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SEQ_NUMBER_ISSET_ID, value);
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getKey() {
      return this.key;
    }

    public void setKey(@org.apache.thrift.annotation.Nullable java.lang.String key) {
      this.key = key;
    }

    public void unsetKey() {
      this.key = null;
    }

    /** Returns true if field key is set (has been assigned a value) and false otherwise */
    public boolean isSetKey() {
      return this.key != null;
    }

    public void setKeyIsSet(boolean value) {
      if (!value) {
        this.key = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SEQ_NUMBER:
        if (value == null) {
          unsetSeq_number();
        } else {
          setSeq_number((java.lang.Integer)value);
        }
        break;

      case KEY:
        if (value == null) {
          unsetKey();
        } else {
          setKey((java.lang.String)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SEQ_NUMBER:
        return getSeq_number();

      case KEY:
        return getKey();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SEQ_NUMBER:
        return isSetSeq_number();
      case KEY:
        return isSetKey();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof update_master_key_args)
        return this.equals((update_master_key_args)that);
      return false;
    }

    public boolean equals(update_master_key_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_seq_number = true;
      boolean that_present_seq_number = true;
      if (this_present_seq_number || that_present_seq_number) {
        if (!(this_present_seq_number && that_present_seq_number))
          return false;
        if (this.seq_number != that.seq_number)
          return false;
      }

      boolean this_present_key = true && this.isSetKey();
      boolean that_present_key = true && that.isSetKey();
      if (this_present_key || that_present_key) {
        if (!(this_present_key && that_present_key))
          return false;
        if (!this.key.equals(that.key))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + seq_number;

      hashCode = hashCode * 8191 + ((isSetKey()) ? 131071 : 524287);
      if (isSetKey())
        hashCode = hashCode * 8191 + key.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(update_master_key_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSeq_number(), other.isSetSeq_number());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSeq_number()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.seq_number, other.seq_number);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetKey(), other.isSetKey());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetKey()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.key, other.key);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("update_master_key_args(");
      boolean first = true;

      sb.append("seq_number:");
      sb.append(this.seq_number);
      first = false;
      if (!first) sb.append(", ");
      sb.append("key:");
      if (this.key == null) {
        sb.append("null");
      } else {
        sb.append(this.key);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class update_master_key_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public update_master_key_argsStandardScheme getScheme() {
        return new update_master_key_argsStandardScheme();
      }
    }

    private static class update_master_key_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<update_master_key_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, update_master_key_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // SEQ_NUMBER
              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
                struct.seq_number = iprot.readI32();
                struct.setSeq_numberIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // KEY
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.key = iprot.readString();
                struct.setKeyIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, update_master_key_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        oprot.writeFieldBegin(SEQ_NUMBER_FIELD_DESC);
        oprot.writeI32(struct.seq_number);
        oprot.writeFieldEnd();
        if (struct.key != null) {
          oprot.writeFieldBegin(KEY_FIELD_DESC);
          oprot.writeString(struct.key);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class update_master_key_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public update_master_key_argsTupleScheme getScheme() {
        return new update_master_key_argsTupleScheme();
      }
    }

    private static class update_master_key_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<update_master_key_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, update_master_key_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSeq_number()) {
          optionals.set(0);
        }
        if (struct.isSetKey()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSeq_number()) {
          oprot.writeI32(struct.seq_number);
        }
        if (struct.isSetKey()) {
          oprot.writeString(struct.key);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, update_master_key_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.seq_number = iprot.readI32();
          struct.setSeq_numberIsSet(true);
        }
        if (incoming.get(1)) {
          struct.key = iprot.readString();
          struct.setKeyIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class update_master_key_result implements org.apache.thrift.TBase<update_master_key_result, update_master_key_result._Fields>, java.io.Serializable, Cloneable, Comparable<update_master_key_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("update_master_key_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new update_master_key_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new update_master_key_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(update_master_key_result.class, metaDataMap);
    }

    public update_master_key_result() {
    }

    public update_master_key_result(
      NoSuchObjectException o1,
      MetaException o2)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public update_master_key_result(update_master_key_result other) {
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public update_master_key_result deepCopy() {
      return new update_master_key_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof update_master_key_result)
        return this.equals((update_master_key_result)that);
      return false;
    }

    public boolean equals(update_master_key_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(update_master_key_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("update_master_key_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class update_master_key_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public update_master_key_resultStandardScheme getScheme() {
        return new update_master_key_resultStandardScheme();
      }
    }

    private static class update_master_key_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<update_master_key_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, update_master_key_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, update_master_key_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class update_master_key_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public update_master_key_resultTupleScheme getScheme() {
        return new update_master_key_resultTupleScheme();
      }
    }

    private static class update_master_key_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<update_master_key_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, update_master_key_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, update_master_key_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class remove_master_key_args implements org.apache.thrift.TBase<remove_master_key_args, remove_master_key_args._Fields>, java.io.Serializable, Cloneable, Comparable<remove_master_key_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("remove_master_key_args");

    private static final org.apache.thrift.protocol.TField KEY_SEQ_FIELD_DESC = new org.apache.thrift.protocol.TField("key_seq", org.apache.thrift.protocol.TType.I32, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new remove_master_key_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new remove_master_key_argsTupleSchemeFactory();

    private int key_seq; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      KEY_SEQ((short)1, "key_seq");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // KEY_SEQ
            return KEY_SEQ;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __KEY_SEQ_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.KEY_SEQ, new org.apache.thrift.meta_data.FieldMetaData("key_seq", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(remove_master_key_args.class, metaDataMap);
    }

    public remove_master_key_args() {
    }

    public remove_master_key_args(
      int key_seq)
    {
      this();
      this.key_seq = key_seq;
      setKey_seqIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public remove_master_key_args(remove_master_key_args other) {
      __isset_bitfield = other.__isset_bitfield;
      this.key_seq = other.key_seq;
    }

    public remove_master_key_args deepCopy() {
      return new remove_master_key_args(this);
    }

    @Override
    public void clear() {
      setKey_seqIsSet(false);
      this.key_seq = 0;
    }

    public int getKey_seq() {
      return this.key_seq;
    }

    public void setKey_seq(int key_seq) {
      this.key_seq = key_seq;
      setKey_seqIsSet(true);
    }

    public void unsetKey_seq() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __KEY_SEQ_ISSET_ID);
    }

    /** Returns true if field key_seq is set (has been assigned a value) and false otherwise */
    public boolean isSetKey_seq() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __KEY_SEQ_ISSET_ID);
    }

    public void setKey_seqIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __KEY_SEQ_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case KEY_SEQ:
        if (value == null) {
          unsetKey_seq();
        } else {
          setKey_seq((java.lang.Integer)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case KEY_SEQ:
        return getKey_seq();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case KEY_SEQ:
        return isSetKey_seq();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof remove_master_key_args)
        return this.equals((remove_master_key_args)that);
      return false;
    }

    public boolean equals(remove_master_key_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_key_seq = true;
      boolean that_present_key_seq = true;
      if (this_present_key_seq || that_present_key_seq) {
        if (!(this_present_key_seq && that_present_key_seq))
          return false;
        if (this.key_seq != that.key_seq)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + key_seq;

      return hashCode;
    }

    @Override
    public int compareTo(remove_master_key_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetKey_seq(), other.isSetKey_seq());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetKey_seq()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.key_seq, other.key_seq);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("remove_master_key_args(");
      boolean first = true;

      sb.append("key_seq:");
      sb.append(this.key_seq);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class remove_master_key_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public remove_master_key_argsStandardScheme getScheme() {
        return new remove_master_key_argsStandardScheme();
      }
    }

    private static class remove_master_key_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<remove_master_key_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, remove_master_key_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // KEY_SEQ
              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
                struct.key_seq = iprot.readI32();
                struct.setKey_seqIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, remove_master_key_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        oprot.writeFieldBegin(KEY_SEQ_FIELD_DESC);
        oprot.writeI32(struct.key_seq);
        oprot.writeFieldEnd();
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class remove_master_key_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public remove_master_key_argsTupleScheme getScheme() {
        return new remove_master_key_argsTupleScheme();
      }
    }

    private static class remove_master_key_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<remove_master_key_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, remove_master_key_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetKey_seq()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetKey_seq()) {
          oprot.writeI32(struct.key_seq);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, remove_master_key_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.key_seq = iprot.readI32();
          struct.setKey_seqIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class remove_master_key_result implements org.apache.thrift.TBase<remove_master_key_result, remove_master_key_result._Fields>, java.io.Serializable, Cloneable, Comparable<remove_master_key_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("remove_master_key_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new remove_master_key_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new remove_master_key_resultTupleSchemeFactory();

    private boolean success; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(remove_master_key_result.class, metaDataMap);
    }

    public remove_master_key_result() {
    }

    public remove_master_key_result(
      boolean success)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public remove_master_key_result(remove_master_key_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
    }

    public remove_master_key_result deepCopy() {
      return new remove_master_key_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = false;
    }

    public boolean isSuccess() {
      return this.success;
    }

    public void setSuccess(boolean success) {
      this.success = success;
      setSuccessIsSet(true);
    }

    public void unsetSuccess() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.lang.Boolean)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return isSuccess();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof remove_master_key_result)
        return this.equals((remove_master_key_result)that);
      return false;
    }

    public boolean equals(remove_master_key_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);

      return hashCode;
    }

    @Override
    public int compareTo(remove_master_key_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("remove_master_key_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class remove_master_key_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public remove_master_key_resultStandardScheme getScheme() {
        return new remove_master_key_resultStandardScheme();
      }
    }

    private static class remove_master_key_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<remove_master_key_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, remove_master_key_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.success = iprot.readBool();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, remove_master_key_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeBool(struct.success);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class remove_master_key_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public remove_master_key_resultTupleScheme getScheme() {
        return new remove_master_key_resultTupleScheme();
      }
    }

    private static class remove_master_key_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<remove_master_key_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, remove_master_key_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSuccess()) {
          oprot.writeBool(struct.success);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, remove_master_key_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.success = iprot.readBool();
          struct.setSuccessIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_master_keys_args implements org.apache.thrift.TBase<get_master_keys_args, get_master_keys_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_master_keys_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_master_keys_args");


    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_master_keys_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_master_keys_argsTupleSchemeFactory();


    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
;

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_master_keys_args.class, metaDataMap);
    }

    public get_master_keys_args() {
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_master_keys_args(get_master_keys_args other) {
    }

    public get_master_keys_args deepCopy() {
      return new get_master_keys_args(this);
    }

    @Override
    public void clear() {
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_master_keys_args)
        return this.equals((get_master_keys_args)that);
      return false;
    }

    public boolean equals(get_master_keys_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      return hashCode;
    }

    @Override
    public int compareTo(get_master_keys_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_master_keys_args(");
      boolean first = true;

      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_master_keys_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_master_keys_argsStandardScheme getScheme() {
        return new get_master_keys_argsStandardScheme();
      }
    }

    private static class get_master_keys_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_master_keys_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_master_keys_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_master_keys_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_master_keys_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_master_keys_argsTupleScheme getScheme() {
        return new get_master_keys_argsTupleScheme();
      }
    }

    private static class get_master_keys_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_master_keys_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_master_keys_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_master_keys_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_master_keys_result implements org.apache.thrift.TBase<get_master_keys_result, get_master_keys_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_master_keys_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_master_keys_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_master_keys_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_master_keys_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> success; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_master_keys_result.class, metaDataMap);
    }

    public get_master_keys_result() {
    }

    public get_master_keys_result(
      java.util.List<java.lang.String> success)
    {
      this();
      this.success = success;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_master_keys_result(get_master_keys_result other) {
      if (other.isSetSuccess()) {
        java.util.List<java.lang.String> __this__success = new java.util.ArrayList<java.lang.String>(other.success);
        this.success = __this__success;
      }
    }

    public get_master_keys_result deepCopy() {
      return new get_master_keys_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<java.lang.String> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(java.lang.String elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<java.lang.String>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<java.lang.String> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<java.lang.String>)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_master_keys_result)
        return this.equals((get_master_keys_result)that);
      return false;
    }

    public boolean equals(get_master_keys_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_master_keys_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_master_keys_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_master_keys_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_master_keys_resultStandardScheme getScheme() {
        return new get_master_keys_resultStandardScheme();
      }
    }

    private static class get_master_keys_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_master_keys_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_master_keys_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1468 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<java.lang.String>(_list1468.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _elem1469;
                  for (int _i1470 = 0; _i1470 < _list1468.size; ++_i1470)
                  {
                    _elem1469 = iprot.readString();
                    struct.success.add(_elem1469);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_master_keys_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.success.size()));
            for (java.lang.String _iter1471 : struct.success)
            {
              oprot.writeString(_iter1471);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_master_keys_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_master_keys_resultTupleScheme getScheme() {
        return new get_master_keys_resultTupleScheme();
      }
    }

    private static class get_master_keys_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_master_keys_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_master_keys_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (java.lang.String _iter1472 : struct.success)
            {
              oprot.writeString(_iter1472);
            }
          }
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_master_keys_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list1473 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
            struct.success = new java.util.ArrayList<java.lang.String>(_list1473.size);
            @org.apache.thrift.annotation.Nullable java.lang.String _elem1474;
            for (int _i1475 = 0; _i1475 < _list1473.size; ++_i1475)
            {
              _elem1474 = iprot.readString();
              struct.success.add(_elem1474);
            }
          }
          struct.setSuccessIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_open_txns_args implements org.apache.thrift.TBase<get_open_txns_args, get_open_txns_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_open_txns_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_open_txns_args");


    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_open_txns_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_open_txns_argsTupleSchemeFactory();


    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
;

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_open_txns_args.class, metaDataMap);
    }

    public get_open_txns_args() {
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_open_txns_args(get_open_txns_args other) {
    }

    public get_open_txns_args deepCopy() {
      return new get_open_txns_args(this);
    }

    @Override
    public void clear() {
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_open_txns_args)
        return this.equals((get_open_txns_args)that);
      return false;
    }

    public boolean equals(get_open_txns_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      return hashCode;
    }

    @Override
    public int compareTo(get_open_txns_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_open_txns_args(");
      boolean first = true;

      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_open_txns_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_open_txns_argsStandardScheme getScheme() {
        return new get_open_txns_argsStandardScheme();
      }
    }

    private static class get_open_txns_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_open_txns_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_open_txns_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_open_txns_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_open_txns_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_open_txns_argsTupleScheme getScheme() {
        return new get_open_txns_argsTupleScheme();
      }
    }

    private static class get_open_txns_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_open_txns_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_open_txns_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_open_txns_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_open_txns_result implements org.apache.thrift.TBase<get_open_txns_result, get_open_txns_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_open_txns_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_open_txns_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_open_txns_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_open_txns_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable GetOpenTxnsResponse success; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetOpenTxnsResponse.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_open_txns_result.class, metaDataMap);
    }

    public get_open_txns_result() {
    }

    public get_open_txns_result(
      GetOpenTxnsResponse success)
    {
      this();
      this.success = success;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_open_txns_result(get_open_txns_result other) {
      if (other.isSetSuccess()) {
        this.success = new GetOpenTxnsResponse(other.success);
      }
    }

    public get_open_txns_result deepCopy() {
      return new get_open_txns_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
    }

    @org.apache.thrift.annotation.Nullable
    public GetOpenTxnsResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable GetOpenTxnsResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((GetOpenTxnsResponse)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_open_txns_result)
        return this.equals((get_open_txns_result)that);
      return false;
    }

    public boolean equals(get_open_txns_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_open_txns_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_open_txns_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_open_txns_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_open_txns_resultStandardScheme getScheme() {
        return new get_open_txns_resultStandardScheme();
      }
    }

    private static class get_open_txns_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_open_txns_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_open_txns_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new GetOpenTxnsResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_open_txns_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_open_txns_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_open_txns_resultTupleScheme getScheme() {
        return new get_open_txns_resultTupleScheme();
      }
    }

    private static class get_open_txns_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_open_txns_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_open_txns_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_open_txns_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.success = new GetOpenTxnsResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_open_txns_info_args implements org.apache.thrift.TBase<get_open_txns_info_args, get_open_txns_info_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_open_txns_info_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_open_txns_info_args");


    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_open_txns_info_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_open_txns_info_argsTupleSchemeFactory();


    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
;

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_open_txns_info_args.class, metaDataMap);
    }

    public get_open_txns_info_args() {
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_open_txns_info_args(get_open_txns_info_args other) {
    }

    public get_open_txns_info_args deepCopy() {
      return new get_open_txns_info_args(this);
    }

    @Override
    public void clear() {
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_open_txns_info_args)
        return this.equals((get_open_txns_info_args)that);
      return false;
    }

    public boolean equals(get_open_txns_info_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      return hashCode;
    }

    @Override
    public int compareTo(get_open_txns_info_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_open_txns_info_args(");
      boolean first = true;

      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_open_txns_info_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_open_txns_info_argsStandardScheme getScheme() {
        return new get_open_txns_info_argsStandardScheme();
      }
    }

    private static class get_open_txns_info_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_open_txns_info_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_open_txns_info_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_open_txns_info_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_open_txns_info_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_open_txns_info_argsTupleScheme getScheme() {
        return new get_open_txns_info_argsTupleScheme();
      }
    }

    private static class get_open_txns_info_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_open_txns_info_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_open_txns_info_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_open_txns_info_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_open_txns_info_result implements org.apache.thrift.TBase<get_open_txns_info_result, get_open_txns_info_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_open_txns_info_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_open_txns_info_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_open_txns_info_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_open_txns_info_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable GetOpenTxnsInfoResponse success; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetOpenTxnsInfoResponse.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_open_txns_info_result.class, metaDataMap);
    }

    public get_open_txns_info_result() {
    }

    public get_open_txns_info_result(
      GetOpenTxnsInfoResponse success)
    {
      this();
      this.success = success;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_open_txns_info_result(get_open_txns_info_result other) {
      if (other.isSetSuccess()) {
        this.success = new GetOpenTxnsInfoResponse(other.success);
      }
    }

    public get_open_txns_info_result deepCopy() {
      return new get_open_txns_info_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
    }

    @org.apache.thrift.annotation.Nullable
    public GetOpenTxnsInfoResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable GetOpenTxnsInfoResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((GetOpenTxnsInfoResponse)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_open_txns_info_result)
        return this.equals((get_open_txns_info_result)that);
      return false;
    }

    public boolean equals(get_open_txns_info_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_open_txns_info_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_open_txns_info_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_open_txns_info_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_open_txns_info_resultStandardScheme getScheme() {
        return new get_open_txns_info_resultStandardScheme();
      }
    }

    private static class get_open_txns_info_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_open_txns_info_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_open_txns_info_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new GetOpenTxnsInfoResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_open_txns_info_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_open_txns_info_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_open_txns_info_resultTupleScheme getScheme() {
        return new get_open_txns_info_resultTupleScheme();
      }
    }

    private static class get_open_txns_info_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_open_txns_info_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_open_txns_info_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_open_txns_info_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.success = new GetOpenTxnsInfoResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class open_txns_args implements org.apache.thrift.TBase<open_txns_args, open_txns_args._Fields>, java.io.Serializable, Cloneable, Comparable<open_txns_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("open_txns_args");

    private static final org.apache.thrift.protocol.TField RQST_FIELD_DESC = new org.apache.thrift.protocol.TField("rqst", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new open_txns_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new open_txns_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable OpenTxnRequest rqst; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      RQST((short)1, "rqst");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // RQST
            return RQST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.RQST, new org.apache.thrift.meta_data.FieldMetaData("rqst", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, OpenTxnRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(open_txns_args.class, metaDataMap);
    }

    public open_txns_args() {
    }

    public open_txns_args(
      OpenTxnRequest rqst)
    {
      this();
      this.rqst = rqst;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public open_txns_args(open_txns_args other) {
      if (other.isSetRqst()) {
        this.rqst = new OpenTxnRequest(other.rqst);
      }
    }

    public open_txns_args deepCopy() {
      return new open_txns_args(this);
    }

    @Override
    public void clear() {
      this.rqst = null;
    }

    @org.apache.thrift.annotation.Nullable
    public OpenTxnRequest getRqst() {
      return this.rqst;
    }

    public void setRqst(@org.apache.thrift.annotation.Nullable OpenTxnRequest rqst) {
      this.rqst = rqst;
    }

    public void unsetRqst() {
      this.rqst = null;
    }

    /** Returns true if field rqst is set (has been assigned a value) and false otherwise */
    public boolean isSetRqst() {
      return this.rqst != null;
    }

    public void setRqstIsSet(boolean value) {
      if (!value) {
        this.rqst = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case RQST:
        if (value == null) {
          unsetRqst();
        } else {
          setRqst((OpenTxnRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case RQST:
        return getRqst();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case RQST:
        return isSetRqst();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof open_txns_args)
        return this.equals((open_txns_args)that);
      return false;
    }

    public boolean equals(open_txns_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_rqst = true && this.isSetRqst();
      boolean that_present_rqst = true && that.isSetRqst();
      if (this_present_rqst || that_present_rqst) {
        if (!(this_present_rqst && that_present_rqst))
          return false;
        if (!this.rqst.equals(that.rqst))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRqst()) ? 131071 : 524287);
      if (isSetRqst())
        hashCode = hashCode * 8191 + rqst.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(open_txns_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRqst(), other.isSetRqst());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRqst()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rqst, other.rqst);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("open_txns_args(");
      boolean first = true;

      sb.append("rqst:");
      if (this.rqst == null) {
        sb.append("null");
      } else {
        sb.append(this.rqst);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (rqst != null) {
        rqst.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class open_txns_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public open_txns_argsStandardScheme getScheme() {
        return new open_txns_argsStandardScheme();
      }
    }

    private static class open_txns_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<open_txns_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, open_txns_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // RQST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.rqst = new OpenTxnRequest();
                struct.rqst.read(iprot);
                struct.setRqstIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, open_txns_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.rqst != null) {
          oprot.writeFieldBegin(RQST_FIELD_DESC);
          struct.rqst.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class open_txns_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public open_txns_argsTupleScheme getScheme() {
        return new open_txns_argsTupleScheme();
      }
    }

    private static class open_txns_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<open_txns_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, open_txns_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRqst()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRqst()) {
          struct.rqst.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, open_txns_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.rqst = new OpenTxnRequest();
          struct.rqst.read(iprot);
          struct.setRqstIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class open_txns_result implements org.apache.thrift.TBase<open_txns_result, open_txns_result._Fields>, java.io.Serializable, Cloneable, Comparable<open_txns_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("open_txns_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new open_txns_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new open_txns_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable OpenTxnsResponse success; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, OpenTxnsResponse.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(open_txns_result.class, metaDataMap);
    }

    public open_txns_result() {
    }

    public open_txns_result(
      OpenTxnsResponse success)
    {
      this();
      this.success = success;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public open_txns_result(open_txns_result other) {
      if (other.isSetSuccess()) {
        this.success = new OpenTxnsResponse(other.success);
      }
    }

    public open_txns_result deepCopy() {
      return new open_txns_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
    }

    @org.apache.thrift.annotation.Nullable
    public OpenTxnsResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable OpenTxnsResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((OpenTxnsResponse)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof open_txns_result)
        return this.equals((open_txns_result)that);
      return false;
    }

    public boolean equals(open_txns_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(open_txns_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("open_txns_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class open_txns_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public open_txns_resultStandardScheme getScheme() {
        return new open_txns_resultStandardScheme();
      }
    }

    private static class open_txns_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<open_txns_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, open_txns_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new OpenTxnsResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, open_txns_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class open_txns_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public open_txns_resultTupleScheme getScheme() {
        return new open_txns_resultTupleScheme();
      }
    }

    private static class open_txns_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<open_txns_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, open_txns_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, open_txns_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.success = new OpenTxnsResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class abort_txn_args implements org.apache.thrift.TBase<abort_txn_args, abort_txn_args._Fields>, java.io.Serializable, Cloneable, Comparable<abort_txn_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("abort_txn_args");

    private static final org.apache.thrift.protocol.TField RQST_FIELD_DESC = new org.apache.thrift.protocol.TField("rqst", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new abort_txn_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new abort_txn_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable AbortTxnRequest rqst; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      RQST((short)1, "rqst");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // RQST
            return RQST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.RQST, new org.apache.thrift.meta_data.FieldMetaData("rqst", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AbortTxnRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(abort_txn_args.class, metaDataMap);
    }

    public abort_txn_args() {
    }

    public abort_txn_args(
      AbortTxnRequest rqst)
    {
      this();
      this.rqst = rqst;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public abort_txn_args(abort_txn_args other) {
      if (other.isSetRqst()) {
        this.rqst = new AbortTxnRequest(other.rqst);
      }
    }

    public abort_txn_args deepCopy() {
      return new abort_txn_args(this);
    }

    @Override
    public void clear() {
      this.rqst = null;
    }

    @org.apache.thrift.annotation.Nullable
    public AbortTxnRequest getRqst() {
      return this.rqst;
    }

    public void setRqst(@org.apache.thrift.annotation.Nullable AbortTxnRequest rqst) {
      this.rqst = rqst;
    }

    public void unsetRqst() {
      this.rqst = null;
    }

    /** Returns true if field rqst is set (has been assigned a value) and false otherwise */
    public boolean isSetRqst() {
      return this.rqst != null;
    }

    public void setRqstIsSet(boolean value) {
      if (!value) {
        this.rqst = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case RQST:
        if (value == null) {
          unsetRqst();
        } else {
          setRqst((AbortTxnRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case RQST:
        return getRqst();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case RQST:
        return isSetRqst();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof abort_txn_args)
        return this.equals((abort_txn_args)that);
      return false;
    }

    public boolean equals(abort_txn_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_rqst = true && this.isSetRqst();
      boolean that_present_rqst = true && that.isSetRqst();
      if (this_present_rqst || that_present_rqst) {
        if (!(this_present_rqst && that_present_rqst))
          return false;
        if (!this.rqst.equals(that.rqst))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRqst()) ? 131071 : 524287);
      if (isSetRqst())
        hashCode = hashCode * 8191 + rqst.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(abort_txn_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRqst(), other.isSetRqst());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRqst()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rqst, other.rqst);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("abort_txn_args(");
      boolean first = true;

      sb.append("rqst:");
      if (this.rqst == null) {
        sb.append("null");
      } else {
        sb.append(this.rqst);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (rqst != null) {
        rqst.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class abort_txn_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public abort_txn_argsStandardScheme getScheme() {
        return new abort_txn_argsStandardScheme();
      }
    }

    private static class abort_txn_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<abort_txn_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, abort_txn_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // RQST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.rqst = new AbortTxnRequest();
                struct.rqst.read(iprot);
                struct.setRqstIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, abort_txn_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.rqst != null) {
          oprot.writeFieldBegin(RQST_FIELD_DESC);
          struct.rqst.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class abort_txn_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public abort_txn_argsTupleScheme getScheme() {
        return new abort_txn_argsTupleScheme();
      }
    }

    private static class abort_txn_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<abort_txn_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, abort_txn_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRqst()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRqst()) {
          struct.rqst.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, abort_txn_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.rqst = new AbortTxnRequest();
          struct.rqst.read(iprot);
          struct.setRqstIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class abort_txn_result implements org.apache.thrift.TBase<abort_txn_result, abort_txn_result._Fields>, java.io.Serializable, Cloneable, Comparable<abort_txn_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("abort_txn_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new abort_txn_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new abort_txn_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable NoSuchTxnException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchTxnException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(abort_txn_result.class, metaDataMap);
    }

    public abort_txn_result() {
    }

    public abort_txn_result(
      NoSuchTxnException o1)
    {
      this();
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public abort_txn_result(abort_txn_result other) {
      if (other.isSetO1()) {
        this.o1 = new NoSuchTxnException(other.o1);
      }
    }

    public abort_txn_result deepCopy() {
      return new abort_txn_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchTxnException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchTxnException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchTxnException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof abort_txn_result)
        return this.equals((abort_txn_result)that);
      return false;
    }

    public boolean equals(abort_txn_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(abort_txn_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("abort_txn_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class abort_txn_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public abort_txn_resultStandardScheme getScheme() {
        return new abort_txn_resultStandardScheme();
      }
    }

    private static class abort_txn_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<abort_txn_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, abort_txn_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchTxnException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, abort_txn_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class abort_txn_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public abort_txn_resultTupleScheme getScheme() {
        return new abort_txn_resultTupleScheme();
      }
    }

    private static class abort_txn_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<abort_txn_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, abort_txn_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, abort_txn_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.o1 = new NoSuchTxnException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class abort_txns_args implements org.apache.thrift.TBase<abort_txns_args, abort_txns_args._Fields>, java.io.Serializable, Cloneable, Comparable<abort_txns_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("abort_txns_args");

    private static final org.apache.thrift.protocol.TField RQST_FIELD_DESC = new org.apache.thrift.protocol.TField("rqst", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new abort_txns_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new abort_txns_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable AbortTxnsRequest rqst; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      RQST((short)1, "rqst");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // RQST
            return RQST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.RQST, new org.apache.thrift.meta_data.FieldMetaData("rqst", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AbortTxnsRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(abort_txns_args.class, metaDataMap);
    }

    public abort_txns_args() {
    }

    public abort_txns_args(
      AbortTxnsRequest rqst)
    {
      this();
      this.rqst = rqst;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public abort_txns_args(abort_txns_args other) {
      if (other.isSetRqst()) {
        this.rqst = new AbortTxnsRequest(other.rqst);
      }
    }

    public abort_txns_args deepCopy() {
      return new abort_txns_args(this);
    }

    @Override
    public void clear() {
      this.rqst = null;
    }

    @org.apache.thrift.annotation.Nullable
    public AbortTxnsRequest getRqst() {
      return this.rqst;
    }

    public void setRqst(@org.apache.thrift.annotation.Nullable AbortTxnsRequest rqst) {
      this.rqst = rqst;
    }

    public void unsetRqst() {
      this.rqst = null;
    }

    /** Returns true if field rqst is set (has been assigned a value) and false otherwise */
    public boolean isSetRqst() {
      return this.rqst != null;
    }

    public void setRqstIsSet(boolean value) {
      if (!value) {
        this.rqst = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case RQST:
        if (value == null) {
          unsetRqst();
        } else {
          setRqst((AbortTxnsRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case RQST:
        return getRqst();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case RQST:
        return isSetRqst();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof abort_txns_args)
        return this.equals((abort_txns_args)that);
      return false;
    }

    public boolean equals(abort_txns_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_rqst = true && this.isSetRqst();
      boolean that_present_rqst = true && that.isSetRqst();
      if (this_present_rqst || that_present_rqst) {
        if (!(this_present_rqst && that_present_rqst))
          return false;
        if (!this.rqst.equals(that.rqst))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRqst()) ? 131071 : 524287);
      if (isSetRqst())
        hashCode = hashCode * 8191 + rqst.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(abort_txns_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRqst(), other.isSetRqst());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRqst()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rqst, other.rqst);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("abort_txns_args(");
      boolean first = true;

      sb.append("rqst:");
      if (this.rqst == null) {
        sb.append("null");
      } else {
        sb.append(this.rqst);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (rqst != null) {
        rqst.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class abort_txns_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public abort_txns_argsStandardScheme getScheme() {
        return new abort_txns_argsStandardScheme();
      }
    }

    private static class abort_txns_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<abort_txns_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, abort_txns_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // RQST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.rqst = new AbortTxnsRequest();
                struct.rqst.read(iprot);
                struct.setRqstIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, abort_txns_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.rqst != null) {
          oprot.writeFieldBegin(RQST_FIELD_DESC);
          struct.rqst.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class abort_txns_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public abort_txns_argsTupleScheme getScheme() {
        return new abort_txns_argsTupleScheme();
      }
    }

    private static class abort_txns_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<abort_txns_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, abort_txns_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRqst()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRqst()) {
          struct.rqst.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, abort_txns_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.rqst = new AbortTxnsRequest();
          struct.rqst.read(iprot);
          struct.setRqstIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class abort_txns_result implements org.apache.thrift.TBase<abort_txns_result, abort_txns_result._Fields>, java.io.Serializable, Cloneable, Comparable<abort_txns_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("abort_txns_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new abort_txns_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new abort_txns_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable NoSuchTxnException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchTxnException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(abort_txns_result.class, metaDataMap);
    }

    public abort_txns_result() {
    }

    public abort_txns_result(
      NoSuchTxnException o1)
    {
      this();
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public abort_txns_result(abort_txns_result other) {
      if (other.isSetO1()) {
        this.o1 = new NoSuchTxnException(other.o1);
      }
    }

    public abort_txns_result deepCopy() {
      return new abort_txns_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchTxnException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchTxnException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchTxnException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof abort_txns_result)
        return this.equals((abort_txns_result)that);
      return false;
    }

    public boolean equals(abort_txns_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(abort_txns_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("abort_txns_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class abort_txns_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public abort_txns_resultStandardScheme getScheme() {
        return new abort_txns_resultStandardScheme();
      }
    }

    private static class abort_txns_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<abort_txns_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, abort_txns_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchTxnException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, abort_txns_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class abort_txns_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public abort_txns_resultTupleScheme getScheme() {
        return new abort_txns_resultTupleScheme();
      }
    }

    private static class abort_txns_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<abort_txns_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, abort_txns_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, abort_txns_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.o1 = new NoSuchTxnException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class commit_txn_args implements org.apache.thrift.TBase<commit_txn_args, commit_txn_args._Fields>, java.io.Serializable, Cloneable, Comparable<commit_txn_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("commit_txn_args");

    private static final org.apache.thrift.protocol.TField RQST_FIELD_DESC = new org.apache.thrift.protocol.TField("rqst", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new commit_txn_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new commit_txn_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable CommitTxnRequest rqst; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      RQST((short)1, "rqst");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // RQST
            return RQST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.RQST, new org.apache.thrift.meta_data.FieldMetaData("rqst", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CommitTxnRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(commit_txn_args.class, metaDataMap);
    }

    public commit_txn_args() {
    }

    public commit_txn_args(
      CommitTxnRequest rqst)
    {
      this();
      this.rqst = rqst;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public commit_txn_args(commit_txn_args other) {
      if (other.isSetRqst()) {
        this.rqst = new CommitTxnRequest(other.rqst);
      }
    }

    public commit_txn_args deepCopy() {
      return new commit_txn_args(this);
    }

    @Override
    public void clear() {
      this.rqst = null;
    }

    @org.apache.thrift.annotation.Nullable
    public CommitTxnRequest getRqst() {
      return this.rqst;
    }

    public void setRqst(@org.apache.thrift.annotation.Nullable CommitTxnRequest rqst) {
      this.rqst = rqst;
    }

    public void unsetRqst() {
      this.rqst = null;
    }

    /** Returns true if field rqst is set (has been assigned a value) and false otherwise */
    public boolean isSetRqst() {
      return this.rqst != null;
    }

    public void setRqstIsSet(boolean value) {
      if (!value) {
        this.rqst = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case RQST:
        if (value == null) {
          unsetRqst();
        } else {
          setRqst((CommitTxnRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case RQST:
        return getRqst();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case RQST:
        return isSetRqst();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof commit_txn_args)
        return this.equals((commit_txn_args)that);
      return false;
    }

    public boolean equals(commit_txn_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_rqst = true && this.isSetRqst();
      boolean that_present_rqst = true && that.isSetRqst();
      if (this_present_rqst || that_present_rqst) {
        if (!(this_present_rqst && that_present_rqst))
          return false;
        if (!this.rqst.equals(that.rqst))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRqst()) ? 131071 : 524287);
      if (isSetRqst())
        hashCode = hashCode * 8191 + rqst.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(commit_txn_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRqst(), other.isSetRqst());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRqst()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rqst, other.rqst);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("commit_txn_args(");
      boolean first = true;

      sb.append("rqst:");
      if (this.rqst == null) {
        sb.append("null");
      } else {
        sb.append(this.rqst);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (rqst != null) {
        rqst.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class commit_txn_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public commit_txn_argsStandardScheme getScheme() {
        return new commit_txn_argsStandardScheme();
      }
    }

    private static class commit_txn_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<commit_txn_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, commit_txn_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // RQST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.rqst = new CommitTxnRequest();
                struct.rqst.read(iprot);
                struct.setRqstIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, commit_txn_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.rqst != null) {
          oprot.writeFieldBegin(RQST_FIELD_DESC);
          struct.rqst.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class commit_txn_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public commit_txn_argsTupleScheme getScheme() {
        return new commit_txn_argsTupleScheme();
      }
    }

    private static class commit_txn_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<commit_txn_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, commit_txn_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRqst()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRqst()) {
          struct.rqst.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, commit_txn_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.rqst = new CommitTxnRequest();
          struct.rqst.read(iprot);
          struct.setRqstIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class commit_txn_result implements org.apache.thrift.TBase<commit_txn_result, commit_txn_result._Fields>, java.io.Serializable, Cloneable, Comparable<commit_txn_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("commit_txn_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new commit_txn_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new commit_txn_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable NoSuchTxnException o1; // required
    private @org.apache.thrift.annotation.Nullable TxnAbortedException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchTxnException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TxnAbortedException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(commit_txn_result.class, metaDataMap);
    }

    public commit_txn_result() {
    }

    public commit_txn_result(
      NoSuchTxnException o1,
      TxnAbortedException o2)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public commit_txn_result(commit_txn_result other) {
      if (other.isSetO1()) {
        this.o1 = new NoSuchTxnException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new TxnAbortedException(other.o2);
      }
    }

    public commit_txn_result deepCopy() {
      return new commit_txn_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchTxnException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchTxnException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public TxnAbortedException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable TxnAbortedException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchTxnException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((TxnAbortedException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof commit_txn_result)
        return this.equals((commit_txn_result)that);
      return false;
    }

    public boolean equals(commit_txn_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(commit_txn_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("commit_txn_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class commit_txn_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public commit_txn_resultStandardScheme getScheme() {
        return new commit_txn_resultStandardScheme();
      }
    }

    private static class commit_txn_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<commit_txn_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, commit_txn_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchTxnException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new TxnAbortedException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, commit_txn_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class commit_txn_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public commit_txn_resultTupleScheme getScheme() {
        return new commit_txn_resultTupleScheme();
      }
    }

    private static class commit_txn_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<commit_txn_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, commit_txn_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, commit_txn_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.o1 = new NoSuchTxnException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new TxnAbortedException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class repl_tbl_writeid_state_args implements org.apache.thrift.TBase<repl_tbl_writeid_state_args, repl_tbl_writeid_state_args._Fields>, java.io.Serializable, Cloneable, Comparable<repl_tbl_writeid_state_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("repl_tbl_writeid_state_args");

    private static final org.apache.thrift.protocol.TField RQST_FIELD_DESC = new org.apache.thrift.protocol.TField("rqst", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new repl_tbl_writeid_state_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new repl_tbl_writeid_state_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable ReplTblWriteIdStateRequest rqst; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      RQST((short)1, "rqst");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // RQST
            return RQST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.RQST, new org.apache.thrift.meta_data.FieldMetaData("rqst", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ReplTblWriteIdStateRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(repl_tbl_writeid_state_args.class, metaDataMap);
    }

    public repl_tbl_writeid_state_args() {
    }

    public repl_tbl_writeid_state_args(
      ReplTblWriteIdStateRequest rqst)
    {
      this();
      this.rqst = rqst;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public repl_tbl_writeid_state_args(repl_tbl_writeid_state_args other) {
      if (other.isSetRqst()) {
        this.rqst = new ReplTblWriteIdStateRequest(other.rqst);
      }
    }

    public repl_tbl_writeid_state_args deepCopy() {
      return new repl_tbl_writeid_state_args(this);
    }

    @Override
    public void clear() {
      this.rqst = null;
    }

    @org.apache.thrift.annotation.Nullable
    public ReplTblWriteIdStateRequest getRqst() {
      return this.rqst;
    }

    public void setRqst(@org.apache.thrift.annotation.Nullable ReplTblWriteIdStateRequest rqst) {
      this.rqst = rqst;
    }

    public void unsetRqst() {
      this.rqst = null;
    }

    /** Returns true if field rqst is set (has been assigned a value) and false otherwise */
    public boolean isSetRqst() {
      return this.rqst != null;
    }

    public void setRqstIsSet(boolean value) {
      if (!value) {
        this.rqst = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case RQST:
        if (value == null) {
          unsetRqst();
        } else {
          setRqst((ReplTblWriteIdStateRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case RQST:
        return getRqst();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case RQST:
        return isSetRqst();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof repl_tbl_writeid_state_args)
        return this.equals((repl_tbl_writeid_state_args)that);
      return false;
    }

    public boolean equals(repl_tbl_writeid_state_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_rqst = true && this.isSetRqst();
      boolean that_present_rqst = true && that.isSetRqst();
      if (this_present_rqst || that_present_rqst) {
        if (!(this_present_rqst && that_present_rqst))
          return false;
        if (!this.rqst.equals(that.rqst))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRqst()) ? 131071 : 524287);
      if (isSetRqst())
        hashCode = hashCode * 8191 + rqst.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(repl_tbl_writeid_state_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRqst(), other.isSetRqst());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRqst()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rqst, other.rqst);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("repl_tbl_writeid_state_args(");
      boolean first = true;

      sb.append("rqst:");
      if (this.rqst == null) {
        sb.append("null");
      } else {
        sb.append(this.rqst);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (rqst != null) {
        rqst.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class repl_tbl_writeid_state_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public repl_tbl_writeid_state_argsStandardScheme getScheme() {
        return new repl_tbl_writeid_state_argsStandardScheme();
      }
    }

    private static class repl_tbl_writeid_state_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<repl_tbl_writeid_state_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, repl_tbl_writeid_state_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // RQST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.rqst = new ReplTblWriteIdStateRequest();
                struct.rqst.read(iprot);
                struct.setRqstIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, repl_tbl_writeid_state_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.rqst != null) {
          oprot.writeFieldBegin(RQST_FIELD_DESC);
          struct.rqst.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class repl_tbl_writeid_state_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public repl_tbl_writeid_state_argsTupleScheme getScheme() {
        return new repl_tbl_writeid_state_argsTupleScheme();
      }
    }

    private static class repl_tbl_writeid_state_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<repl_tbl_writeid_state_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, repl_tbl_writeid_state_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRqst()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRqst()) {
          struct.rqst.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, repl_tbl_writeid_state_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.rqst = new ReplTblWriteIdStateRequest();
          struct.rqst.read(iprot);
          struct.setRqstIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class repl_tbl_writeid_state_result implements org.apache.thrift.TBase<repl_tbl_writeid_state_result, repl_tbl_writeid_state_result._Fields>, java.io.Serializable, Cloneable, Comparable<repl_tbl_writeid_state_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("repl_tbl_writeid_state_result");


    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new repl_tbl_writeid_state_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new repl_tbl_writeid_state_resultTupleSchemeFactory();


    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
;

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(repl_tbl_writeid_state_result.class, metaDataMap);
    }

    public repl_tbl_writeid_state_result() {
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public repl_tbl_writeid_state_result(repl_tbl_writeid_state_result other) {
    }

    public repl_tbl_writeid_state_result deepCopy() {
      return new repl_tbl_writeid_state_result(this);
    }

    @Override
    public void clear() {
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof repl_tbl_writeid_state_result)
        return this.equals((repl_tbl_writeid_state_result)that);
      return false;
    }

    public boolean equals(repl_tbl_writeid_state_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      return hashCode;
    }

    @Override
    public int compareTo(repl_tbl_writeid_state_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("repl_tbl_writeid_state_result(");
      boolean first = true;

      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class repl_tbl_writeid_state_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public repl_tbl_writeid_state_resultStandardScheme getScheme() {
        return new repl_tbl_writeid_state_resultStandardScheme();
      }
    }

    private static class repl_tbl_writeid_state_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<repl_tbl_writeid_state_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, repl_tbl_writeid_state_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, repl_tbl_writeid_state_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class repl_tbl_writeid_state_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public repl_tbl_writeid_state_resultTupleScheme getScheme() {
        return new repl_tbl_writeid_state_resultTupleScheme();
      }
    }

    private static class repl_tbl_writeid_state_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<repl_tbl_writeid_state_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, repl_tbl_writeid_state_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, repl_tbl_writeid_state_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_valid_write_ids_args implements org.apache.thrift.TBase<get_valid_write_ids_args, get_valid_write_ids_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_valid_write_ids_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_valid_write_ids_args");

    private static final org.apache.thrift.protocol.TField RQST_FIELD_DESC = new org.apache.thrift.protocol.TField("rqst", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_valid_write_ids_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_valid_write_ids_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable GetValidWriteIdsRequest rqst; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      RQST((short)1, "rqst");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // RQST
            return RQST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.RQST, new org.apache.thrift.meta_data.FieldMetaData("rqst", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetValidWriteIdsRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_valid_write_ids_args.class, metaDataMap);
    }

    public get_valid_write_ids_args() {
    }

    public get_valid_write_ids_args(
      GetValidWriteIdsRequest rqst)
    {
      this();
      this.rqst = rqst;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_valid_write_ids_args(get_valid_write_ids_args other) {
      if (other.isSetRqst()) {
        this.rqst = new GetValidWriteIdsRequest(other.rqst);
      }
    }

    public get_valid_write_ids_args deepCopy() {
      return new get_valid_write_ids_args(this);
    }

    @Override
    public void clear() {
      this.rqst = null;
    }

    @org.apache.thrift.annotation.Nullable
    public GetValidWriteIdsRequest getRqst() {
      return this.rqst;
    }

    public void setRqst(@org.apache.thrift.annotation.Nullable GetValidWriteIdsRequest rqst) {
      this.rqst = rqst;
    }

    public void unsetRqst() {
      this.rqst = null;
    }

    /** Returns true if field rqst is set (has been assigned a value) and false otherwise */
    public boolean isSetRqst() {
      return this.rqst != null;
    }

    public void setRqstIsSet(boolean value) {
      if (!value) {
        this.rqst = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case RQST:
        if (value == null) {
          unsetRqst();
        } else {
          setRqst((GetValidWriteIdsRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case RQST:
        return getRqst();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case RQST:
        return isSetRqst();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_valid_write_ids_args)
        return this.equals((get_valid_write_ids_args)that);
      return false;
    }

    public boolean equals(get_valid_write_ids_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_rqst = true && this.isSetRqst();
      boolean that_present_rqst = true && that.isSetRqst();
      if (this_present_rqst || that_present_rqst) {
        if (!(this_present_rqst && that_present_rqst))
          return false;
        if (!this.rqst.equals(that.rqst))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRqst()) ? 131071 : 524287);
      if (isSetRqst())
        hashCode = hashCode * 8191 + rqst.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_valid_write_ids_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRqst(), other.isSetRqst());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRqst()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rqst, other.rqst);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_valid_write_ids_args(");
      boolean first = true;

      sb.append("rqst:");
      if (this.rqst == null) {
        sb.append("null");
      } else {
        sb.append(this.rqst);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (rqst != null) {
        rqst.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_valid_write_ids_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_valid_write_ids_argsStandardScheme getScheme() {
        return new get_valid_write_ids_argsStandardScheme();
      }
    }

    private static class get_valid_write_ids_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_valid_write_ids_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_valid_write_ids_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // RQST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.rqst = new GetValidWriteIdsRequest();
                struct.rqst.read(iprot);
                struct.setRqstIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_valid_write_ids_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.rqst != null) {
          oprot.writeFieldBegin(RQST_FIELD_DESC);
          struct.rqst.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_valid_write_ids_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_valid_write_ids_argsTupleScheme getScheme() {
        return new get_valid_write_ids_argsTupleScheme();
      }
    }

    private static class get_valid_write_ids_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_valid_write_ids_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_valid_write_ids_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRqst()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRqst()) {
          struct.rqst.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_valid_write_ids_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.rqst = new GetValidWriteIdsRequest();
          struct.rqst.read(iprot);
          struct.setRqstIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_valid_write_ids_result implements org.apache.thrift.TBase<get_valid_write_ids_result, get_valid_write_ids_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_valid_write_ids_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_valid_write_ids_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_valid_write_ids_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_valid_write_ids_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable GetValidWriteIdsResponse success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchTxnException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetValidWriteIdsResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchTxnException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_valid_write_ids_result.class, metaDataMap);
    }

    public get_valid_write_ids_result() {
    }

    public get_valid_write_ids_result(
      GetValidWriteIdsResponse success,
      NoSuchTxnException o1,
      MetaException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_valid_write_ids_result(get_valid_write_ids_result other) {
      if (other.isSetSuccess()) {
        this.success = new GetValidWriteIdsResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new NoSuchTxnException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public get_valid_write_ids_result deepCopy() {
      return new get_valid_write_ids_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public GetValidWriteIdsResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable GetValidWriteIdsResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchTxnException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchTxnException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((GetValidWriteIdsResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchTxnException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_valid_write_ids_result)
        return this.equals((get_valid_write_ids_result)that);
      return false;
    }

    public boolean equals(get_valid_write_ids_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_valid_write_ids_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_valid_write_ids_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_valid_write_ids_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_valid_write_ids_resultStandardScheme getScheme() {
        return new get_valid_write_ids_resultStandardScheme();
      }
    }

    private static class get_valid_write_ids_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_valid_write_ids_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_valid_write_ids_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new GetValidWriteIdsResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchTxnException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_valid_write_ids_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_valid_write_ids_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_valid_write_ids_resultTupleScheme getScheme() {
        return new get_valid_write_ids_resultTupleScheme();
      }
    }

    private static class get_valid_write_ids_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_valid_write_ids_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_valid_write_ids_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_valid_write_ids_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = new GetValidWriteIdsResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchTxnException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class allocate_table_write_ids_args implements org.apache.thrift.TBase<allocate_table_write_ids_args, allocate_table_write_ids_args._Fields>, java.io.Serializable, Cloneable, Comparable<allocate_table_write_ids_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("allocate_table_write_ids_args");

    private static final org.apache.thrift.protocol.TField RQST_FIELD_DESC = new org.apache.thrift.protocol.TField("rqst", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new allocate_table_write_ids_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new allocate_table_write_ids_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable AllocateTableWriteIdsRequest rqst; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      RQST((short)1, "rqst");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // RQST
            return RQST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.RQST, new org.apache.thrift.meta_data.FieldMetaData("rqst", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AllocateTableWriteIdsRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(allocate_table_write_ids_args.class, metaDataMap);
    }

    public allocate_table_write_ids_args() {
    }

    public allocate_table_write_ids_args(
      AllocateTableWriteIdsRequest rqst)
    {
      this();
      this.rqst = rqst;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public allocate_table_write_ids_args(allocate_table_write_ids_args other) {
      if (other.isSetRqst()) {
        this.rqst = new AllocateTableWriteIdsRequest(other.rqst);
      }
    }

    public allocate_table_write_ids_args deepCopy() {
      return new allocate_table_write_ids_args(this);
    }

    @Override
    public void clear() {
      this.rqst = null;
    }

    @org.apache.thrift.annotation.Nullable
    public AllocateTableWriteIdsRequest getRqst() {
      return this.rqst;
    }

    public void setRqst(@org.apache.thrift.annotation.Nullable AllocateTableWriteIdsRequest rqst) {
      this.rqst = rqst;
    }

    public void unsetRqst() {
      this.rqst = null;
    }

    /** Returns true if field rqst is set (has been assigned a value) and false otherwise */
    public boolean isSetRqst() {
      return this.rqst != null;
    }

    public void setRqstIsSet(boolean value) {
      if (!value) {
        this.rqst = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case RQST:
        if (value == null) {
          unsetRqst();
        } else {
          setRqst((AllocateTableWriteIdsRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case RQST:
        return getRqst();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case RQST:
        return isSetRqst();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof allocate_table_write_ids_args)
        return this.equals((allocate_table_write_ids_args)that);
      return false;
    }

    public boolean equals(allocate_table_write_ids_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_rqst = true && this.isSetRqst();
      boolean that_present_rqst = true && that.isSetRqst();
      if (this_present_rqst || that_present_rqst) {
        if (!(this_present_rqst && that_present_rqst))
          return false;
        if (!this.rqst.equals(that.rqst))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRqst()) ? 131071 : 524287);
      if (isSetRqst())
        hashCode = hashCode * 8191 + rqst.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(allocate_table_write_ids_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRqst(), other.isSetRqst());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRqst()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rqst, other.rqst);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("allocate_table_write_ids_args(");
      boolean first = true;

      sb.append("rqst:");
      if (this.rqst == null) {
        sb.append("null");
      } else {
        sb.append(this.rqst);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (rqst != null) {
        rqst.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class allocate_table_write_ids_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public allocate_table_write_ids_argsStandardScheme getScheme() {
        return new allocate_table_write_ids_argsStandardScheme();
      }
    }

    private static class allocate_table_write_ids_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<allocate_table_write_ids_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, allocate_table_write_ids_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // RQST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.rqst = new AllocateTableWriteIdsRequest();
                struct.rqst.read(iprot);
                struct.setRqstIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, allocate_table_write_ids_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.rqst != null) {
          oprot.writeFieldBegin(RQST_FIELD_DESC);
          struct.rqst.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class allocate_table_write_ids_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public allocate_table_write_ids_argsTupleScheme getScheme() {
        return new allocate_table_write_ids_argsTupleScheme();
      }
    }

    private static class allocate_table_write_ids_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<allocate_table_write_ids_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, allocate_table_write_ids_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRqst()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRqst()) {
          struct.rqst.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, allocate_table_write_ids_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.rqst = new AllocateTableWriteIdsRequest();
          struct.rqst.read(iprot);
          struct.setRqstIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class allocate_table_write_ids_result implements org.apache.thrift.TBase<allocate_table_write_ids_result, allocate_table_write_ids_result._Fields>, java.io.Serializable, Cloneable, Comparable<allocate_table_write_ids_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("allocate_table_write_ids_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new allocate_table_write_ids_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new allocate_table_write_ids_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable AllocateTableWriteIdsResponse success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchTxnException o1; // required
    private @org.apache.thrift.annotation.Nullable TxnAbortedException o2; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AllocateTableWriteIdsResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchTxnException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TxnAbortedException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(allocate_table_write_ids_result.class, metaDataMap);
    }

    public allocate_table_write_ids_result() {
    }

    public allocate_table_write_ids_result(
      AllocateTableWriteIdsResponse success,
      NoSuchTxnException o1,
      TxnAbortedException o2,
      MetaException o3)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public allocate_table_write_ids_result(allocate_table_write_ids_result other) {
      if (other.isSetSuccess()) {
        this.success = new AllocateTableWriteIdsResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new NoSuchTxnException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new TxnAbortedException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
    }

    public allocate_table_write_ids_result deepCopy() {
      return new allocate_table_write_ids_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public AllocateTableWriteIdsResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable AllocateTableWriteIdsResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchTxnException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchTxnException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public TxnAbortedException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable TxnAbortedException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((AllocateTableWriteIdsResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchTxnException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((TxnAbortedException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof allocate_table_write_ids_result)
        return this.equals((allocate_table_write_ids_result)that);
      return false;
    }

    public boolean equals(allocate_table_write_ids_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(allocate_table_write_ids_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("allocate_table_write_ids_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class allocate_table_write_ids_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public allocate_table_write_ids_resultStandardScheme getScheme() {
        return new allocate_table_write_ids_resultStandardScheme();
      }
    }

    private static class allocate_table_write_ids_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<allocate_table_write_ids_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, allocate_table_write_ids_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new AllocateTableWriteIdsResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchTxnException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new TxnAbortedException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, allocate_table_write_ids_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class allocate_table_write_ids_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public allocate_table_write_ids_resultTupleScheme getScheme() {
        return new allocate_table_write_ids_resultTupleScheme();
      }
    }

    private static class allocate_table_write_ids_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<allocate_table_write_ids_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, allocate_table_write_ids_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, allocate_table_write_ids_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = new AllocateTableWriteIdsResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchTxnException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new TxnAbortedException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class lock_args implements org.apache.thrift.TBase<lock_args, lock_args._Fields>, java.io.Serializable, Cloneable, Comparable<lock_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("lock_args");

    private static final org.apache.thrift.protocol.TField RQST_FIELD_DESC = new org.apache.thrift.protocol.TField("rqst", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new lock_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new lock_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable LockRequest rqst; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      RQST((short)1, "rqst");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // RQST
            return RQST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.RQST, new org.apache.thrift.meta_data.FieldMetaData("rqst", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, LockRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(lock_args.class, metaDataMap);
    }

    public lock_args() {
    }

    public lock_args(
      LockRequest rqst)
    {
      this();
      this.rqst = rqst;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public lock_args(lock_args other) {
      if (other.isSetRqst()) {
        this.rqst = new LockRequest(other.rqst);
      }
    }

    public lock_args deepCopy() {
      return new lock_args(this);
    }

    @Override
    public void clear() {
      this.rqst = null;
    }

    @org.apache.thrift.annotation.Nullable
    public LockRequest getRqst() {
      return this.rqst;
    }

    public void setRqst(@org.apache.thrift.annotation.Nullable LockRequest rqst) {
      this.rqst = rqst;
    }

    public void unsetRqst() {
      this.rqst = null;
    }

    /** Returns true if field rqst is set (has been assigned a value) and false otherwise */
    public boolean isSetRqst() {
      return this.rqst != null;
    }

    public void setRqstIsSet(boolean value) {
      if (!value) {
        this.rqst = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case RQST:
        if (value == null) {
          unsetRqst();
        } else {
          setRqst((LockRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case RQST:
        return getRqst();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case RQST:
        return isSetRqst();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof lock_args)
        return this.equals((lock_args)that);
      return false;
    }

    public boolean equals(lock_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_rqst = true && this.isSetRqst();
      boolean that_present_rqst = true && that.isSetRqst();
      if (this_present_rqst || that_present_rqst) {
        if (!(this_present_rqst && that_present_rqst))
          return false;
        if (!this.rqst.equals(that.rqst))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRqst()) ? 131071 : 524287);
      if (isSetRqst())
        hashCode = hashCode * 8191 + rqst.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(lock_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRqst(), other.isSetRqst());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRqst()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rqst, other.rqst);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("lock_args(");
      boolean first = true;

      sb.append("rqst:");
      if (this.rqst == null) {
        sb.append("null");
      } else {
        sb.append(this.rqst);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (rqst != null) {
        rqst.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class lock_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public lock_argsStandardScheme getScheme() {
        return new lock_argsStandardScheme();
      }
    }

    private static class lock_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<lock_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, lock_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // RQST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.rqst = new LockRequest();
                struct.rqst.read(iprot);
                struct.setRqstIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, lock_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.rqst != null) {
          oprot.writeFieldBegin(RQST_FIELD_DESC);
          struct.rqst.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class lock_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public lock_argsTupleScheme getScheme() {
        return new lock_argsTupleScheme();
      }
    }

    private static class lock_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<lock_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, lock_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRqst()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRqst()) {
          struct.rqst.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, lock_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.rqst = new LockRequest();
          struct.rqst.read(iprot);
          struct.setRqstIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class lock_result implements org.apache.thrift.TBase<lock_result, lock_result._Fields>, java.io.Serializable, Cloneable, Comparable<lock_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("lock_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new lock_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new lock_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable LockResponse success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchTxnException o1; // required
    private @org.apache.thrift.annotation.Nullable TxnAbortedException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, LockResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchTxnException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TxnAbortedException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(lock_result.class, metaDataMap);
    }

    public lock_result() {
    }

    public lock_result(
      LockResponse success,
      NoSuchTxnException o1,
      TxnAbortedException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public lock_result(lock_result other) {
      if (other.isSetSuccess()) {
        this.success = new LockResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new NoSuchTxnException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new TxnAbortedException(other.o2);
      }
    }

    public lock_result deepCopy() {
      return new lock_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public LockResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable LockResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchTxnException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchTxnException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public TxnAbortedException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable TxnAbortedException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((LockResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchTxnException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((TxnAbortedException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof lock_result)
        return this.equals((lock_result)that);
      return false;
    }

    public boolean equals(lock_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(lock_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("lock_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class lock_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public lock_resultStandardScheme getScheme() {
        return new lock_resultStandardScheme();
      }
    }

    private static class lock_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<lock_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, lock_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new LockResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchTxnException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new TxnAbortedException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, lock_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class lock_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public lock_resultTupleScheme getScheme() {
        return new lock_resultTupleScheme();
      }
    }

    private static class lock_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<lock_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, lock_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, lock_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = new LockResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchTxnException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new TxnAbortedException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class check_lock_args implements org.apache.thrift.TBase<check_lock_args, check_lock_args._Fields>, java.io.Serializable, Cloneable, Comparable<check_lock_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("check_lock_args");

    private static final org.apache.thrift.protocol.TField RQST_FIELD_DESC = new org.apache.thrift.protocol.TField("rqst", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new check_lock_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new check_lock_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable CheckLockRequest rqst; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      RQST((short)1, "rqst");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // RQST
            return RQST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.RQST, new org.apache.thrift.meta_data.FieldMetaData("rqst", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CheckLockRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(check_lock_args.class, metaDataMap);
    }

    public check_lock_args() {
    }

    public check_lock_args(
      CheckLockRequest rqst)
    {
      this();
      this.rqst = rqst;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public check_lock_args(check_lock_args other) {
      if (other.isSetRqst()) {
        this.rqst = new CheckLockRequest(other.rqst);
      }
    }

    public check_lock_args deepCopy() {
      return new check_lock_args(this);
    }

    @Override
    public void clear() {
      this.rqst = null;
    }

    @org.apache.thrift.annotation.Nullable
    public CheckLockRequest getRqst() {
      return this.rqst;
    }

    public void setRqst(@org.apache.thrift.annotation.Nullable CheckLockRequest rqst) {
      this.rqst = rqst;
    }

    public void unsetRqst() {
      this.rqst = null;
    }

    /** Returns true if field rqst is set (has been assigned a value) and false otherwise */
    public boolean isSetRqst() {
      return this.rqst != null;
    }

    public void setRqstIsSet(boolean value) {
      if (!value) {
        this.rqst = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case RQST:
        if (value == null) {
          unsetRqst();
        } else {
          setRqst((CheckLockRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case RQST:
        return getRqst();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case RQST:
        return isSetRqst();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof check_lock_args)
        return this.equals((check_lock_args)that);
      return false;
    }

    public boolean equals(check_lock_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_rqst = true && this.isSetRqst();
      boolean that_present_rqst = true && that.isSetRqst();
      if (this_present_rqst || that_present_rqst) {
        if (!(this_present_rqst && that_present_rqst))
          return false;
        if (!this.rqst.equals(that.rqst))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRqst()) ? 131071 : 524287);
      if (isSetRqst())
        hashCode = hashCode * 8191 + rqst.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(check_lock_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRqst(), other.isSetRqst());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRqst()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rqst, other.rqst);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("check_lock_args(");
      boolean first = true;

      sb.append("rqst:");
      if (this.rqst == null) {
        sb.append("null");
      } else {
        sb.append(this.rqst);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (rqst != null) {
        rqst.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class check_lock_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public check_lock_argsStandardScheme getScheme() {
        return new check_lock_argsStandardScheme();
      }
    }

    private static class check_lock_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<check_lock_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, check_lock_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // RQST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.rqst = new CheckLockRequest();
                struct.rqst.read(iprot);
                struct.setRqstIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, check_lock_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.rqst != null) {
          oprot.writeFieldBegin(RQST_FIELD_DESC);
          struct.rqst.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class check_lock_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public check_lock_argsTupleScheme getScheme() {
        return new check_lock_argsTupleScheme();
      }
    }

    private static class check_lock_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<check_lock_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, check_lock_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRqst()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRqst()) {
          struct.rqst.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, check_lock_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.rqst = new CheckLockRequest();
          struct.rqst.read(iprot);
          struct.setRqstIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class check_lock_result implements org.apache.thrift.TBase<check_lock_result, check_lock_result._Fields>, java.io.Serializable, Cloneable, Comparable<check_lock_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("check_lock_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new check_lock_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new check_lock_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable LockResponse success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchTxnException o1; // required
    private @org.apache.thrift.annotation.Nullable TxnAbortedException o2; // required
    private @org.apache.thrift.annotation.Nullable NoSuchLockException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, LockResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchTxnException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TxnAbortedException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchLockException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(check_lock_result.class, metaDataMap);
    }

    public check_lock_result() {
    }

    public check_lock_result(
      LockResponse success,
      NoSuchTxnException o1,
      TxnAbortedException o2,
      NoSuchLockException o3)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public check_lock_result(check_lock_result other) {
      if (other.isSetSuccess()) {
        this.success = new LockResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new NoSuchTxnException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new TxnAbortedException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new NoSuchLockException(other.o3);
      }
    }

    public check_lock_result deepCopy() {
      return new check_lock_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public LockResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable LockResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchTxnException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchTxnException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public TxnAbortedException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable TxnAbortedException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchLockException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable NoSuchLockException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((LockResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchTxnException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((TxnAbortedException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((NoSuchLockException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof check_lock_result)
        return this.equals((check_lock_result)that);
      return false;
    }

    public boolean equals(check_lock_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(check_lock_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("check_lock_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class check_lock_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public check_lock_resultStandardScheme getScheme() {
        return new check_lock_resultStandardScheme();
      }
    }

    private static class check_lock_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<check_lock_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, check_lock_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new LockResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchTxnException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new TxnAbortedException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new NoSuchLockException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, check_lock_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class check_lock_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public check_lock_resultTupleScheme getScheme() {
        return new check_lock_resultTupleScheme();
      }
    }

    private static class check_lock_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<check_lock_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, check_lock_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, check_lock_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = new LockResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchTxnException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new TxnAbortedException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new NoSuchLockException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class unlock_args implements org.apache.thrift.TBase<unlock_args, unlock_args._Fields>, java.io.Serializable, Cloneable, Comparable<unlock_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("unlock_args");

    private static final org.apache.thrift.protocol.TField RQST_FIELD_DESC = new org.apache.thrift.protocol.TField("rqst", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new unlock_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new unlock_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable UnlockRequest rqst; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      RQST((short)1, "rqst");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // RQST
            return RQST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.RQST, new org.apache.thrift.meta_data.FieldMetaData("rqst", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UnlockRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(unlock_args.class, metaDataMap);
    }

    public unlock_args() {
    }

    public unlock_args(
      UnlockRequest rqst)
    {
      this();
      this.rqst = rqst;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public unlock_args(unlock_args other) {
      if (other.isSetRqst()) {
        this.rqst = new UnlockRequest(other.rqst);
      }
    }

    public unlock_args deepCopy() {
      return new unlock_args(this);
    }

    @Override
    public void clear() {
      this.rqst = null;
    }

    @org.apache.thrift.annotation.Nullable
    public UnlockRequest getRqst() {
      return this.rqst;
    }

    public void setRqst(@org.apache.thrift.annotation.Nullable UnlockRequest rqst) {
      this.rqst = rqst;
    }

    public void unsetRqst() {
      this.rqst = null;
    }

    /** Returns true if field rqst is set (has been assigned a value) and false otherwise */
    public boolean isSetRqst() {
      return this.rqst != null;
    }

    public void setRqstIsSet(boolean value) {
      if (!value) {
        this.rqst = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case RQST:
        if (value == null) {
          unsetRqst();
        } else {
          setRqst((UnlockRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case RQST:
        return getRqst();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case RQST:
        return isSetRqst();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof unlock_args)
        return this.equals((unlock_args)that);
      return false;
    }

    public boolean equals(unlock_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_rqst = true && this.isSetRqst();
      boolean that_present_rqst = true && that.isSetRqst();
      if (this_present_rqst || that_present_rqst) {
        if (!(this_present_rqst && that_present_rqst))
          return false;
        if (!this.rqst.equals(that.rqst))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRqst()) ? 131071 : 524287);
      if (isSetRqst())
        hashCode = hashCode * 8191 + rqst.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(unlock_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRqst(), other.isSetRqst());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRqst()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rqst, other.rqst);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("unlock_args(");
      boolean first = true;

      sb.append("rqst:");
      if (this.rqst == null) {
        sb.append("null");
      } else {
        sb.append(this.rqst);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (rqst != null) {
        rqst.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class unlock_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public unlock_argsStandardScheme getScheme() {
        return new unlock_argsStandardScheme();
      }
    }

    private static class unlock_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<unlock_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, unlock_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // RQST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.rqst = new UnlockRequest();
                struct.rqst.read(iprot);
                struct.setRqstIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, unlock_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.rqst != null) {
          oprot.writeFieldBegin(RQST_FIELD_DESC);
          struct.rqst.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class unlock_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public unlock_argsTupleScheme getScheme() {
        return new unlock_argsTupleScheme();
      }
    }

    private static class unlock_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<unlock_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, unlock_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRqst()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRqst()) {
          struct.rqst.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, unlock_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.rqst = new UnlockRequest();
          struct.rqst.read(iprot);
          struct.setRqstIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class unlock_result implements org.apache.thrift.TBase<unlock_result, unlock_result._Fields>, java.io.Serializable, Cloneable, Comparable<unlock_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("unlock_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new unlock_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new unlock_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable NoSuchLockException o1; // required
    private @org.apache.thrift.annotation.Nullable TxnOpenException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchLockException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TxnOpenException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(unlock_result.class, metaDataMap);
    }

    public unlock_result() {
    }

    public unlock_result(
      NoSuchLockException o1,
      TxnOpenException o2)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public unlock_result(unlock_result other) {
      if (other.isSetO1()) {
        this.o1 = new NoSuchLockException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new TxnOpenException(other.o2);
      }
    }

    public unlock_result deepCopy() {
      return new unlock_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchLockException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchLockException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public TxnOpenException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable TxnOpenException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchLockException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((TxnOpenException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof unlock_result)
        return this.equals((unlock_result)that);
      return false;
    }

    public boolean equals(unlock_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(unlock_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("unlock_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class unlock_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public unlock_resultStandardScheme getScheme() {
        return new unlock_resultStandardScheme();
      }
    }

    private static class unlock_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<unlock_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, unlock_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchLockException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new TxnOpenException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, unlock_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class unlock_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public unlock_resultTupleScheme getScheme() {
        return new unlock_resultTupleScheme();
      }
    }

    private static class unlock_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<unlock_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, unlock_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, unlock_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.o1 = new NoSuchLockException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new TxnOpenException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class show_locks_args implements org.apache.thrift.TBase<show_locks_args, show_locks_args._Fields>, java.io.Serializable, Cloneable, Comparable<show_locks_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("show_locks_args");

    private static final org.apache.thrift.protocol.TField RQST_FIELD_DESC = new org.apache.thrift.protocol.TField("rqst", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new show_locks_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new show_locks_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable ShowLocksRequest rqst; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      RQST((short)1, "rqst");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // RQST
            return RQST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.RQST, new org.apache.thrift.meta_data.FieldMetaData("rqst", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ShowLocksRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(show_locks_args.class, metaDataMap);
    }

    public show_locks_args() {
    }

    public show_locks_args(
      ShowLocksRequest rqst)
    {
      this();
      this.rqst = rqst;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public show_locks_args(show_locks_args other) {
      if (other.isSetRqst()) {
        this.rqst = new ShowLocksRequest(other.rqst);
      }
    }

    public show_locks_args deepCopy() {
      return new show_locks_args(this);
    }

    @Override
    public void clear() {
      this.rqst = null;
    }

    @org.apache.thrift.annotation.Nullable
    public ShowLocksRequest getRqst() {
      return this.rqst;
    }

    public void setRqst(@org.apache.thrift.annotation.Nullable ShowLocksRequest rqst) {
      this.rqst = rqst;
    }

    public void unsetRqst() {
      this.rqst = null;
    }

    /** Returns true if field rqst is set (has been assigned a value) and false otherwise */
    public boolean isSetRqst() {
      return this.rqst != null;
    }

    public void setRqstIsSet(boolean value) {
      if (!value) {
        this.rqst = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case RQST:
        if (value == null) {
          unsetRqst();
        } else {
          setRqst((ShowLocksRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case RQST:
        return getRqst();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case RQST:
        return isSetRqst();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof show_locks_args)
        return this.equals((show_locks_args)that);
      return false;
    }

    public boolean equals(show_locks_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_rqst = true && this.isSetRqst();
      boolean that_present_rqst = true && that.isSetRqst();
      if (this_present_rqst || that_present_rqst) {
        if (!(this_present_rqst && that_present_rqst))
          return false;
        if (!this.rqst.equals(that.rqst))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRqst()) ? 131071 : 524287);
      if (isSetRqst())
        hashCode = hashCode * 8191 + rqst.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(show_locks_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRqst(), other.isSetRqst());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRqst()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rqst, other.rqst);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("show_locks_args(");
      boolean first = true;

      sb.append("rqst:");
      if (this.rqst == null) {
        sb.append("null");
      } else {
        sb.append(this.rqst);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (rqst != null) {
        rqst.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class show_locks_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public show_locks_argsStandardScheme getScheme() {
        return new show_locks_argsStandardScheme();
      }
    }

    private static class show_locks_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<show_locks_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, show_locks_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // RQST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.rqst = new ShowLocksRequest();
                struct.rqst.read(iprot);
                struct.setRqstIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, show_locks_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.rqst != null) {
          oprot.writeFieldBegin(RQST_FIELD_DESC);
          struct.rqst.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class show_locks_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public show_locks_argsTupleScheme getScheme() {
        return new show_locks_argsTupleScheme();
      }
    }

    private static class show_locks_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<show_locks_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, show_locks_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRqst()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRqst()) {
          struct.rqst.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, show_locks_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.rqst = new ShowLocksRequest();
          struct.rqst.read(iprot);
          struct.setRqstIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class show_locks_result implements org.apache.thrift.TBase<show_locks_result, show_locks_result._Fields>, java.io.Serializable, Cloneable, Comparable<show_locks_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("show_locks_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new show_locks_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new show_locks_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable ShowLocksResponse success; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ShowLocksResponse.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(show_locks_result.class, metaDataMap);
    }

    public show_locks_result() {
    }

    public show_locks_result(
      ShowLocksResponse success)
    {
      this();
      this.success = success;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public show_locks_result(show_locks_result other) {
      if (other.isSetSuccess()) {
        this.success = new ShowLocksResponse(other.success);
      }
    }

    public show_locks_result deepCopy() {
      return new show_locks_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
    }

    @org.apache.thrift.annotation.Nullable
    public ShowLocksResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable ShowLocksResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((ShowLocksResponse)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof show_locks_result)
        return this.equals((show_locks_result)that);
      return false;
    }

    public boolean equals(show_locks_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(show_locks_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("show_locks_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class show_locks_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public show_locks_resultStandardScheme getScheme() {
        return new show_locks_resultStandardScheme();
      }
    }

    private static class show_locks_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<show_locks_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, show_locks_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new ShowLocksResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, show_locks_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class show_locks_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public show_locks_resultTupleScheme getScheme() {
        return new show_locks_resultTupleScheme();
      }
    }

    private static class show_locks_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<show_locks_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, show_locks_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, show_locks_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.success = new ShowLocksResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class heartbeat_args implements org.apache.thrift.TBase<heartbeat_args, heartbeat_args._Fields>, java.io.Serializable, Cloneable, Comparable<heartbeat_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("heartbeat_args");

    private static final org.apache.thrift.protocol.TField IDS_FIELD_DESC = new org.apache.thrift.protocol.TField("ids", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new heartbeat_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new heartbeat_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable HeartbeatRequest ids; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      IDS((short)1, "ids");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // IDS
            return IDS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.IDS, new org.apache.thrift.meta_data.FieldMetaData("ids", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, HeartbeatRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(heartbeat_args.class, metaDataMap);
    }

    public heartbeat_args() {
    }

    public heartbeat_args(
      HeartbeatRequest ids)
    {
      this();
      this.ids = ids;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public heartbeat_args(heartbeat_args other) {
      if (other.isSetIds()) {
        this.ids = new HeartbeatRequest(other.ids);
      }
    }

    public heartbeat_args deepCopy() {
      return new heartbeat_args(this);
    }

    @Override
    public void clear() {
      this.ids = null;
    }

    @org.apache.thrift.annotation.Nullable
    public HeartbeatRequest getIds() {
      return this.ids;
    }

    public void setIds(@org.apache.thrift.annotation.Nullable HeartbeatRequest ids) {
      this.ids = ids;
    }

    public void unsetIds() {
      this.ids = null;
    }

    /** Returns true if field ids is set (has been assigned a value) and false otherwise */
    public boolean isSetIds() {
      return this.ids != null;
    }

    public void setIdsIsSet(boolean value) {
      if (!value) {
        this.ids = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case IDS:
        if (value == null) {
          unsetIds();
        } else {
          setIds((HeartbeatRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case IDS:
        return getIds();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case IDS:
        return isSetIds();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof heartbeat_args)
        return this.equals((heartbeat_args)that);
      return false;
    }

    public boolean equals(heartbeat_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_ids = true && this.isSetIds();
      boolean that_present_ids = true && that.isSetIds();
      if (this_present_ids || that_present_ids) {
        if (!(this_present_ids && that_present_ids))
          return false;
        if (!this.ids.equals(that.ids))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetIds()) ? 131071 : 524287);
      if (isSetIds())
        hashCode = hashCode * 8191 + ids.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(heartbeat_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetIds(), other.isSetIds());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetIds()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ids, other.ids);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("heartbeat_args(");
      boolean first = true;

      sb.append("ids:");
      if (this.ids == null) {
        sb.append("null");
      } else {
        sb.append(this.ids);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (ids != null) {
        ids.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class heartbeat_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public heartbeat_argsStandardScheme getScheme() {
        return new heartbeat_argsStandardScheme();
      }
    }

    private static class heartbeat_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<heartbeat_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, heartbeat_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // IDS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.ids = new HeartbeatRequest();
                struct.ids.read(iprot);
                struct.setIdsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, heartbeat_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.ids != null) {
          oprot.writeFieldBegin(IDS_FIELD_DESC);
          struct.ids.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class heartbeat_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public heartbeat_argsTupleScheme getScheme() {
        return new heartbeat_argsTupleScheme();
      }
    }

    private static class heartbeat_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<heartbeat_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, heartbeat_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetIds()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetIds()) {
          struct.ids.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, heartbeat_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.ids = new HeartbeatRequest();
          struct.ids.read(iprot);
          struct.setIdsIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class heartbeat_result implements org.apache.thrift.TBase<heartbeat_result, heartbeat_result._Fields>, java.io.Serializable, Cloneable, Comparable<heartbeat_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("heartbeat_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new heartbeat_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new heartbeat_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable NoSuchLockException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchTxnException o2; // required
    private @org.apache.thrift.annotation.Nullable TxnAbortedException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchLockException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchTxnException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TxnAbortedException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(heartbeat_result.class, metaDataMap);
    }

    public heartbeat_result() {
    }

    public heartbeat_result(
      NoSuchLockException o1,
      NoSuchTxnException o2,
      TxnAbortedException o3)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public heartbeat_result(heartbeat_result other) {
      if (other.isSetO1()) {
        this.o1 = new NoSuchLockException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchTxnException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new TxnAbortedException(other.o3);
      }
    }

    public heartbeat_result deepCopy() {
      return new heartbeat_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchLockException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchLockException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchTxnException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchTxnException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public TxnAbortedException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable TxnAbortedException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchLockException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchTxnException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((TxnAbortedException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof heartbeat_result)
        return this.equals((heartbeat_result)that);
      return false;
    }

    public boolean equals(heartbeat_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(heartbeat_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("heartbeat_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class heartbeat_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public heartbeat_resultStandardScheme getScheme() {
        return new heartbeat_resultStandardScheme();
      }
    }

    private static class heartbeat_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<heartbeat_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, heartbeat_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchLockException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchTxnException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new TxnAbortedException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, heartbeat_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class heartbeat_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public heartbeat_resultTupleScheme getScheme() {
        return new heartbeat_resultTupleScheme();
      }
    }

    private static class heartbeat_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<heartbeat_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, heartbeat_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        if (struct.isSetO3()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, heartbeat_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.o1 = new NoSuchLockException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new NoSuchTxnException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o3 = new TxnAbortedException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class heartbeat_txn_range_args implements org.apache.thrift.TBase<heartbeat_txn_range_args, heartbeat_txn_range_args._Fields>, java.io.Serializable, Cloneable, Comparable<heartbeat_txn_range_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("heartbeat_txn_range_args");

    private static final org.apache.thrift.protocol.TField TXNS_FIELD_DESC = new org.apache.thrift.protocol.TField("txns", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new heartbeat_txn_range_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new heartbeat_txn_range_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable HeartbeatTxnRangeRequest txns; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      TXNS((short)1, "txns");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // TXNS
            return TXNS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.TXNS, new org.apache.thrift.meta_data.FieldMetaData("txns", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, HeartbeatTxnRangeRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(heartbeat_txn_range_args.class, metaDataMap);
    }

    public heartbeat_txn_range_args() {
    }

    public heartbeat_txn_range_args(
      HeartbeatTxnRangeRequest txns)
    {
      this();
      this.txns = txns;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public heartbeat_txn_range_args(heartbeat_txn_range_args other) {
      if (other.isSetTxns()) {
        this.txns = new HeartbeatTxnRangeRequest(other.txns);
      }
    }

    public heartbeat_txn_range_args deepCopy() {
      return new heartbeat_txn_range_args(this);
    }

    @Override
    public void clear() {
      this.txns = null;
    }

    @org.apache.thrift.annotation.Nullable
    public HeartbeatTxnRangeRequest getTxns() {
      return this.txns;
    }

    public void setTxns(@org.apache.thrift.annotation.Nullable HeartbeatTxnRangeRequest txns) {
      this.txns = txns;
    }

    public void unsetTxns() {
      this.txns = null;
    }

    /** Returns true if field txns is set (has been assigned a value) and false otherwise */
    public boolean isSetTxns() {
      return this.txns != null;
    }

    public void setTxnsIsSet(boolean value) {
      if (!value) {
        this.txns = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case TXNS:
        if (value == null) {
          unsetTxns();
        } else {
          setTxns((HeartbeatTxnRangeRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case TXNS:
        return getTxns();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case TXNS:
        return isSetTxns();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof heartbeat_txn_range_args)
        return this.equals((heartbeat_txn_range_args)that);
      return false;
    }

    public boolean equals(heartbeat_txn_range_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_txns = true && this.isSetTxns();
      boolean that_present_txns = true && that.isSetTxns();
      if (this_present_txns || that_present_txns) {
        if (!(this_present_txns && that_present_txns))
          return false;
        if (!this.txns.equals(that.txns))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetTxns()) ? 131071 : 524287);
      if (isSetTxns())
        hashCode = hashCode * 8191 + txns.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(heartbeat_txn_range_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetTxns(), other.isSetTxns());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTxns()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.txns, other.txns);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("heartbeat_txn_range_args(");
      boolean first = true;

      sb.append("txns:");
      if (this.txns == null) {
        sb.append("null");
      } else {
        sb.append(this.txns);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (txns != null) {
        txns.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class heartbeat_txn_range_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public heartbeat_txn_range_argsStandardScheme getScheme() {
        return new heartbeat_txn_range_argsStandardScheme();
      }
    }

    private static class heartbeat_txn_range_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<heartbeat_txn_range_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, heartbeat_txn_range_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // TXNS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.txns = new HeartbeatTxnRangeRequest();
                struct.txns.read(iprot);
                struct.setTxnsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, heartbeat_txn_range_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.txns != null) {
          oprot.writeFieldBegin(TXNS_FIELD_DESC);
          struct.txns.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class heartbeat_txn_range_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public heartbeat_txn_range_argsTupleScheme getScheme() {
        return new heartbeat_txn_range_argsTupleScheme();
      }
    }

    private static class heartbeat_txn_range_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<heartbeat_txn_range_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, heartbeat_txn_range_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetTxns()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetTxns()) {
          struct.txns.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, heartbeat_txn_range_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.txns = new HeartbeatTxnRangeRequest();
          struct.txns.read(iprot);
          struct.setTxnsIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class heartbeat_txn_range_result implements org.apache.thrift.TBase<heartbeat_txn_range_result, heartbeat_txn_range_result._Fields>, java.io.Serializable, Cloneable, Comparable<heartbeat_txn_range_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("heartbeat_txn_range_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new heartbeat_txn_range_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new heartbeat_txn_range_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable HeartbeatTxnRangeResponse success; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, HeartbeatTxnRangeResponse.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(heartbeat_txn_range_result.class, metaDataMap);
    }

    public heartbeat_txn_range_result() {
    }

    public heartbeat_txn_range_result(
      HeartbeatTxnRangeResponse success)
    {
      this();
      this.success = success;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public heartbeat_txn_range_result(heartbeat_txn_range_result other) {
      if (other.isSetSuccess()) {
        this.success = new HeartbeatTxnRangeResponse(other.success);
      }
    }

    public heartbeat_txn_range_result deepCopy() {
      return new heartbeat_txn_range_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
    }

    @org.apache.thrift.annotation.Nullable
    public HeartbeatTxnRangeResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable HeartbeatTxnRangeResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((HeartbeatTxnRangeResponse)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof heartbeat_txn_range_result)
        return this.equals((heartbeat_txn_range_result)that);
      return false;
    }

    public boolean equals(heartbeat_txn_range_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(heartbeat_txn_range_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("heartbeat_txn_range_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class heartbeat_txn_range_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public heartbeat_txn_range_resultStandardScheme getScheme() {
        return new heartbeat_txn_range_resultStandardScheme();
      }
    }

    private static class heartbeat_txn_range_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<heartbeat_txn_range_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, heartbeat_txn_range_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new HeartbeatTxnRangeResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, heartbeat_txn_range_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class heartbeat_txn_range_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public heartbeat_txn_range_resultTupleScheme getScheme() {
        return new heartbeat_txn_range_resultTupleScheme();
      }
    }

    private static class heartbeat_txn_range_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<heartbeat_txn_range_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, heartbeat_txn_range_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, heartbeat_txn_range_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.success = new HeartbeatTxnRangeResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class compact_args implements org.apache.thrift.TBase<compact_args, compact_args._Fields>, java.io.Serializable, Cloneable, Comparable<compact_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("compact_args");

    private static final org.apache.thrift.protocol.TField RQST_FIELD_DESC = new org.apache.thrift.protocol.TField("rqst", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new compact_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new compact_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable CompactionRequest rqst; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      RQST((short)1, "rqst");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // RQST
            return RQST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.RQST, new org.apache.thrift.meta_data.FieldMetaData("rqst", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CompactionRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(compact_args.class, metaDataMap);
    }

    public compact_args() {
    }

    public compact_args(
      CompactionRequest rqst)
    {
      this();
      this.rqst = rqst;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public compact_args(compact_args other) {
      if (other.isSetRqst()) {
        this.rqst = new CompactionRequest(other.rqst);
      }
    }

    public compact_args deepCopy() {
      return new compact_args(this);
    }

    @Override
    public void clear() {
      this.rqst = null;
    }

    @org.apache.thrift.annotation.Nullable
    public CompactionRequest getRqst() {
      return this.rqst;
    }

    public void setRqst(@org.apache.thrift.annotation.Nullable CompactionRequest rqst) {
      this.rqst = rqst;
    }

    public void unsetRqst() {
      this.rqst = null;
    }

    /** Returns true if field rqst is set (has been assigned a value) and false otherwise */
    public boolean isSetRqst() {
      return this.rqst != null;
    }

    public void setRqstIsSet(boolean value) {
      if (!value) {
        this.rqst = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case RQST:
        if (value == null) {
          unsetRqst();
        } else {
          setRqst((CompactionRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case RQST:
        return getRqst();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case RQST:
        return isSetRqst();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof compact_args)
        return this.equals((compact_args)that);
      return false;
    }

    public boolean equals(compact_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_rqst = true && this.isSetRqst();
      boolean that_present_rqst = true && that.isSetRqst();
      if (this_present_rqst || that_present_rqst) {
        if (!(this_present_rqst && that_present_rqst))
          return false;
        if (!this.rqst.equals(that.rqst))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRqst()) ? 131071 : 524287);
      if (isSetRqst())
        hashCode = hashCode * 8191 + rqst.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(compact_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRqst(), other.isSetRqst());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRqst()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rqst, other.rqst);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("compact_args(");
      boolean first = true;

      sb.append("rqst:");
      if (this.rqst == null) {
        sb.append("null");
      } else {
        sb.append(this.rqst);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (rqst != null) {
        rqst.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class compact_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public compact_argsStandardScheme getScheme() {
        return new compact_argsStandardScheme();
      }
    }

    private static class compact_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<compact_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, compact_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // RQST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.rqst = new CompactionRequest();
                struct.rqst.read(iprot);
                struct.setRqstIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, compact_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.rqst != null) {
          oprot.writeFieldBegin(RQST_FIELD_DESC);
          struct.rqst.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class compact_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public compact_argsTupleScheme getScheme() {
        return new compact_argsTupleScheme();
      }
    }

    private static class compact_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<compact_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, compact_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRqst()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRqst()) {
          struct.rqst.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, compact_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.rqst = new CompactionRequest();
          struct.rqst.read(iprot);
          struct.setRqstIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class compact_result implements org.apache.thrift.TBase<compact_result, compact_result._Fields>, java.io.Serializable, Cloneable, Comparable<compact_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("compact_result");


    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new compact_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new compact_resultTupleSchemeFactory();


    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
;

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(compact_result.class, metaDataMap);
    }

    public compact_result() {
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public compact_result(compact_result other) {
    }

    public compact_result deepCopy() {
      return new compact_result(this);
    }

    @Override
    public void clear() {
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof compact_result)
        return this.equals((compact_result)that);
      return false;
    }

    public boolean equals(compact_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      return hashCode;
    }

    @Override
    public int compareTo(compact_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("compact_result(");
      boolean first = true;

      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class compact_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public compact_resultStandardScheme getScheme() {
        return new compact_resultStandardScheme();
      }
    }

    private static class compact_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<compact_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, compact_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, compact_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class compact_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public compact_resultTupleScheme getScheme() {
        return new compact_resultTupleScheme();
      }
    }

    private static class compact_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<compact_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, compact_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, compact_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class compact2_args implements org.apache.thrift.TBase<compact2_args, compact2_args._Fields>, java.io.Serializable, Cloneable, Comparable<compact2_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("compact2_args");

    private static final org.apache.thrift.protocol.TField RQST_FIELD_DESC = new org.apache.thrift.protocol.TField("rqst", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new compact2_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new compact2_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable CompactionRequest rqst; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      RQST((short)1, "rqst");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // RQST
            return RQST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.RQST, new org.apache.thrift.meta_data.FieldMetaData("rqst", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CompactionRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(compact2_args.class, metaDataMap);
    }

    public compact2_args() {
    }

    public compact2_args(
      CompactionRequest rqst)
    {
      this();
      this.rqst = rqst;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public compact2_args(compact2_args other) {
      if (other.isSetRqst()) {
        this.rqst = new CompactionRequest(other.rqst);
      }
    }

    public compact2_args deepCopy() {
      return new compact2_args(this);
    }

    @Override
    public void clear() {
      this.rqst = null;
    }

    @org.apache.thrift.annotation.Nullable
    public CompactionRequest getRqst() {
      return this.rqst;
    }

    public void setRqst(@org.apache.thrift.annotation.Nullable CompactionRequest rqst) {
      this.rqst = rqst;
    }

    public void unsetRqst() {
      this.rqst = null;
    }

    /** Returns true if field rqst is set (has been assigned a value) and false otherwise */
    public boolean isSetRqst() {
      return this.rqst != null;
    }

    public void setRqstIsSet(boolean value) {
      if (!value) {
        this.rqst = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case RQST:
        if (value == null) {
          unsetRqst();
        } else {
          setRqst((CompactionRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case RQST:
        return getRqst();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case RQST:
        return isSetRqst();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof compact2_args)
        return this.equals((compact2_args)that);
      return false;
    }

    public boolean equals(compact2_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_rqst = true && this.isSetRqst();
      boolean that_present_rqst = true && that.isSetRqst();
      if (this_present_rqst || that_present_rqst) {
        if (!(this_present_rqst && that_present_rqst))
          return false;
        if (!this.rqst.equals(that.rqst))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRqst()) ? 131071 : 524287);
      if (isSetRqst())
        hashCode = hashCode * 8191 + rqst.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(compact2_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRqst(), other.isSetRqst());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRqst()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rqst, other.rqst);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("compact2_args(");
      boolean first = true;

      sb.append("rqst:");
      if (this.rqst == null) {
        sb.append("null");
      } else {
        sb.append(this.rqst);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (rqst != null) {
        rqst.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class compact2_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public compact2_argsStandardScheme getScheme() {
        return new compact2_argsStandardScheme();
      }
    }

    private static class compact2_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<compact2_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, compact2_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // RQST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.rqst = new CompactionRequest();
                struct.rqst.read(iprot);
                struct.setRqstIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, compact2_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.rqst != null) {
          oprot.writeFieldBegin(RQST_FIELD_DESC);
          struct.rqst.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class compact2_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public compact2_argsTupleScheme getScheme() {
        return new compact2_argsTupleScheme();
      }
    }

    private static class compact2_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<compact2_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, compact2_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRqst()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRqst()) {
          struct.rqst.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, compact2_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.rqst = new CompactionRequest();
          struct.rqst.read(iprot);
          struct.setRqstIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class compact2_result implements org.apache.thrift.TBase<compact2_result, compact2_result._Fields>, java.io.Serializable, Cloneable, Comparable<compact2_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("compact2_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new compact2_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new compact2_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable CompactionResponse success; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CompactionResponse.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(compact2_result.class, metaDataMap);
    }

    public compact2_result() {
    }

    public compact2_result(
      CompactionResponse success)
    {
      this();
      this.success = success;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public compact2_result(compact2_result other) {
      if (other.isSetSuccess()) {
        this.success = new CompactionResponse(other.success);
      }
    }

    public compact2_result deepCopy() {
      return new compact2_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
    }

    @org.apache.thrift.annotation.Nullable
    public CompactionResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable CompactionResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((CompactionResponse)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof compact2_result)
        return this.equals((compact2_result)that);
      return false;
    }

    public boolean equals(compact2_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(compact2_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("compact2_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class compact2_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public compact2_resultStandardScheme getScheme() {
        return new compact2_resultStandardScheme();
      }
    }

    private static class compact2_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<compact2_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, compact2_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new CompactionResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, compact2_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class compact2_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public compact2_resultTupleScheme getScheme() {
        return new compact2_resultTupleScheme();
      }
    }

    private static class compact2_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<compact2_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, compact2_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, compact2_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.success = new CompactionResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class show_compact_args implements org.apache.thrift.TBase<show_compact_args, show_compact_args._Fields>, java.io.Serializable, Cloneable, Comparable<show_compact_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("show_compact_args");

    private static final org.apache.thrift.protocol.TField RQST_FIELD_DESC = new org.apache.thrift.protocol.TField("rqst", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new show_compact_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new show_compact_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable ShowCompactRequest rqst; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      RQST((short)1, "rqst");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // RQST
            return RQST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.RQST, new org.apache.thrift.meta_data.FieldMetaData("rqst", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ShowCompactRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(show_compact_args.class, metaDataMap);
    }

    public show_compact_args() {
    }

    public show_compact_args(
      ShowCompactRequest rqst)
    {
      this();
      this.rqst = rqst;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public show_compact_args(show_compact_args other) {
      if (other.isSetRqst()) {
        this.rqst = new ShowCompactRequest(other.rqst);
      }
    }

    public show_compact_args deepCopy() {
      return new show_compact_args(this);
    }

    @Override
    public void clear() {
      this.rqst = null;
    }

    @org.apache.thrift.annotation.Nullable
    public ShowCompactRequest getRqst() {
      return this.rqst;
    }

    public void setRqst(@org.apache.thrift.annotation.Nullable ShowCompactRequest rqst) {
      this.rqst = rqst;
    }

    public void unsetRqst() {
      this.rqst = null;
    }

    /** Returns true if field rqst is set (has been assigned a value) and false otherwise */
    public boolean isSetRqst() {
      return this.rqst != null;
    }

    public void setRqstIsSet(boolean value) {
      if (!value) {
        this.rqst = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case RQST:
        if (value == null) {
          unsetRqst();
        } else {
          setRqst((ShowCompactRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case RQST:
        return getRqst();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case RQST:
        return isSetRqst();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof show_compact_args)
        return this.equals((show_compact_args)that);
      return false;
    }

    public boolean equals(show_compact_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_rqst = true && this.isSetRqst();
      boolean that_present_rqst = true && that.isSetRqst();
      if (this_present_rqst || that_present_rqst) {
        if (!(this_present_rqst && that_present_rqst))
          return false;
        if (!this.rqst.equals(that.rqst))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRqst()) ? 131071 : 524287);
      if (isSetRqst())
        hashCode = hashCode * 8191 + rqst.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(show_compact_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRqst(), other.isSetRqst());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRqst()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rqst, other.rqst);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("show_compact_args(");
      boolean first = true;

      sb.append("rqst:");
      if (this.rqst == null) {
        sb.append("null");
      } else {
        sb.append(this.rqst);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (rqst != null) {
        rqst.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class show_compact_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public show_compact_argsStandardScheme getScheme() {
        return new show_compact_argsStandardScheme();
      }
    }

    private static class show_compact_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<show_compact_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, show_compact_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // RQST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.rqst = new ShowCompactRequest();
                struct.rqst.read(iprot);
                struct.setRqstIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, show_compact_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.rqst != null) {
          oprot.writeFieldBegin(RQST_FIELD_DESC);
          struct.rqst.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class show_compact_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public show_compact_argsTupleScheme getScheme() {
        return new show_compact_argsTupleScheme();
      }
    }

    private static class show_compact_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<show_compact_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, show_compact_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRqst()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRqst()) {
          struct.rqst.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, show_compact_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.rqst = new ShowCompactRequest();
          struct.rqst.read(iprot);
          struct.setRqstIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class show_compact_result implements org.apache.thrift.TBase<show_compact_result, show_compact_result._Fields>, java.io.Serializable, Cloneable, Comparable<show_compact_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("show_compact_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new show_compact_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new show_compact_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable ShowCompactResponse success; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ShowCompactResponse.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(show_compact_result.class, metaDataMap);
    }

    public show_compact_result() {
    }

    public show_compact_result(
      ShowCompactResponse success)
    {
      this();
      this.success = success;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public show_compact_result(show_compact_result other) {
      if (other.isSetSuccess()) {
        this.success = new ShowCompactResponse(other.success);
      }
    }

    public show_compact_result deepCopy() {
      return new show_compact_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
    }

    @org.apache.thrift.annotation.Nullable
    public ShowCompactResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable ShowCompactResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((ShowCompactResponse)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof show_compact_result)
        return this.equals((show_compact_result)that);
      return false;
    }

    public boolean equals(show_compact_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(show_compact_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("show_compact_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class show_compact_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public show_compact_resultStandardScheme getScheme() {
        return new show_compact_resultStandardScheme();
      }
    }

    private static class show_compact_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<show_compact_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, show_compact_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new ShowCompactResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, show_compact_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class show_compact_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public show_compact_resultTupleScheme getScheme() {
        return new show_compact_resultTupleScheme();
      }
    }

    private static class show_compact_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<show_compact_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, show_compact_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, show_compact_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.success = new ShowCompactResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_dynamic_partitions_args implements org.apache.thrift.TBase<add_dynamic_partitions_args, add_dynamic_partitions_args._Fields>, java.io.Serializable, Cloneable, Comparable<add_dynamic_partitions_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("add_dynamic_partitions_args");

    private static final org.apache.thrift.protocol.TField RQST_FIELD_DESC = new org.apache.thrift.protocol.TField("rqst", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new add_dynamic_partitions_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new add_dynamic_partitions_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable AddDynamicPartitions rqst; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      RQST((short)1, "rqst");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // RQST
            return RQST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.RQST, new org.apache.thrift.meta_data.FieldMetaData("rqst", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AddDynamicPartitions.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(add_dynamic_partitions_args.class, metaDataMap);
    }

    public add_dynamic_partitions_args() {
    }

    public add_dynamic_partitions_args(
      AddDynamicPartitions rqst)
    {
      this();
      this.rqst = rqst;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public add_dynamic_partitions_args(add_dynamic_partitions_args other) {
      if (other.isSetRqst()) {
        this.rqst = new AddDynamicPartitions(other.rqst);
      }
    }

    public add_dynamic_partitions_args deepCopy() {
      return new add_dynamic_partitions_args(this);
    }

    @Override
    public void clear() {
      this.rqst = null;
    }

    @org.apache.thrift.annotation.Nullable
    public AddDynamicPartitions getRqst() {
      return this.rqst;
    }

    public void setRqst(@org.apache.thrift.annotation.Nullable AddDynamicPartitions rqst) {
      this.rqst = rqst;
    }

    public void unsetRqst() {
      this.rqst = null;
    }

    /** Returns true if field rqst is set (has been assigned a value) and false otherwise */
    public boolean isSetRqst() {
      return this.rqst != null;
    }

    public void setRqstIsSet(boolean value) {
      if (!value) {
        this.rqst = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case RQST:
        if (value == null) {
          unsetRqst();
        } else {
          setRqst((AddDynamicPartitions)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case RQST:
        return getRqst();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case RQST:
        return isSetRqst();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof add_dynamic_partitions_args)
        return this.equals((add_dynamic_partitions_args)that);
      return false;
    }

    public boolean equals(add_dynamic_partitions_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_rqst = true && this.isSetRqst();
      boolean that_present_rqst = true && that.isSetRqst();
      if (this_present_rqst || that_present_rqst) {
        if (!(this_present_rqst && that_present_rqst))
          return false;
        if (!this.rqst.equals(that.rqst))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRqst()) ? 131071 : 524287);
      if (isSetRqst())
        hashCode = hashCode * 8191 + rqst.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(add_dynamic_partitions_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRqst(), other.isSetRqst());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRqst()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rqst, other.rqst);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("add_dynamic_partitions_args(");
      boolean first = true;

      sb.append("rqst:");
      if (this.rqst == null) {
        sb.append("null");
      } else {
        sb.append(this.rqst);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (rqst != null) {
        rqst.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class add_dynamic_partitions_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_dynamic_partitions_argsStandardScheme getScheme() {
        return new add_dynamic_partitions_argsStandardScheme();
      }
    }

    private static class add_dynamic_partitions_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<add_dynamic_partitions_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, add_dynamic_partitions_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // RQST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.rqst = new AddDynamicPartitions();
                struct.rqst.read(iprot);
                struct.setRqstIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, add_dynamic_partitions_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.rqst != null) {
          oprot.writeFieldBegin(RQST_FIELD_DESC);
          struct.rqst.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class add_dynamic_partitions_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_dynamic_partitions_argsTupleScheme getScheme() {
        return new add_dynamic_partitions_argsTupleScheme();
      }
    }

    private static class add_dynamic_partitions_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<add_dynamic_partitions_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, add_dynamic_partitions_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRqst()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRqst()) {
          struct.rqst.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, add_dynamic_partitions_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.rqst = new AddDynamicPartitions();
          struct.rqst.read(iprot);
          struct.setRqstIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_dynamic_partitions_result implements org.apache.thrift.TBase<add_dynamic_partitions_result, add_dynamic_partitions_result._Fields>, java.io.Serializable, Cloneable, Comparable<add_dynamic_partitions_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("add_dynamic_partitions_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new add_dynamic_partitions_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new add_dynamic_partitions_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable NoSuchTxnException o1; // required
    private @org.apache.thrift.annotation.Nullable TxnAbortedException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchTxnException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TxnAbortedException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(add_dynamic_partitions_result.class, metaDataMap);
    }

    public add_dynamic_partitions_result() {
    }

    public add_dynamic_partitions_result(
      NoSuchTxnException o1,
      TxnAbortedException o2)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public add_dynamic_partitions_result(add_dynamic_partitions_result other) {
      if (other.isSetO1()) {
        this.o1 = new NoSuchTxnException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new TxnAbortedException(other.o2);
      }
    }

    public add_dynamic_partitions_result deepCopy() {
      return new add_dynamic_partitions_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchTxnException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchTxnException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public TxnAbortedException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable TxnAbortedException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchTxnException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((TxnAbortedException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof add_dynamic_partitions_result)
        return this.equals((add_dynamic_partitions_result)that);
      return false;
    }

    public boolean equals(add_dynamic_partitions_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(add_dynamic_partitions_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("add_dynamic_partitions_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class add_dynamic_partitions_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_dynamic_partitions_resultStandardScheme getScheme() {
        return new add_dynamic_partitions_resultStandardScheme();
      }
    }

    private static class add_dynamic_partitions_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<add_dynamic_partitions_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, add_dynamic_partitions_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchTxnException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new TxnAbortedException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, add_dynamic_partitions_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class add_dynamic_partitions_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_dynamic_partitions_resultTupleScheme getScheme() {
        return new add_dynamic_partitions_resultTupleScheme();
      }
    }

    private static class add_dynamic_partitions_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<add_dynamic_partitions_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, add_dynamic_partitions_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, add_dynamic_partitions_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.o1 = new NoSuchTxnException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new TxnAbortedException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_next_notification_args implements org.apache.thrift.TBase<get_next_notification_args, get_next_notification_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_next_notification_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_next_notification_args");

    private static final org.apache.thrift.protocol.TField RQST_FIELD_DESC = new org.apache.thrift.protocol.TField("rqst", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_next_notification_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_next_notification_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable NotificationEventRequest rqst; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      RQST((short)1, "rqst");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // RQST
            return RQST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.RQST, new org.apache.thrift.meta_data.FieldMetaData("rqst", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NotificationEventRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_next_notification_args.class, metaDataMap);
    }

    public get_next_notification_args() {
    }

    public get_next_notification_args(
      NotificationEventRequest rqst)
    {
      this();
      this.rqst = rqst;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_next_notification_args(get_next_notification_args other) {
      if (other.isSetRqst()) {
        this.rqst = new NotificationEventRequest(other.rqst);
      }
    }

    public get_next_notification_args deepCopy() {
      return new get_next_notification_args(this);
    }

    @Override
    public void clear() {
      this.rqst = null;
    }

    @org.apache.thrift.annotation.Nullable
    public NotificationEventRequest getRqst() {
      return this.rqst;
    }

    public void setRqst(@org.apache.thrift.annotation.Nullable NotificationEventRequest rqst) {
      this.rqst = rqst;
    }

    public void unsetRqst() {
      this.rqst = null;
    }

    /** Returns true if field rqst is set (has been assigned a value) and false otherwise */
    public boolean isSetRqst() {
      return this.rqst != null;
    }

    public void setRqstIsSet(boolean value) {
      if (!value) {
        this.rqst = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case RQST:
        if (value == null) {
          unsetRqst();
        } else {
          setRqst((NotificationEventRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case RQST:
        return getRqst();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case RQST:
        return isSetRqst();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_next_notification_args)
        return this.equals((get_next_notification_args)that);
      return false;
    }

    public boolean equals(get_next_notification_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_rqst = true && this.isSetRqst();
      boolean that_present_rqst = true && that.isSetRqst();
      if (this_present_rqst || that_present_rqst) {
        if (!(this_present_rqst && that_present_rqst))
          return false;
        if (!this.rqst.equals(that.rqst))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRqst()) ? 131071 : 524287);
      if (isSetRqst())
        hashCode = hashCode * 8191 + rqst.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_next_notification_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRqst(), other.isSetRqst());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRqst()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rqst, other.rqst);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_next_notification_args(");
      boolean first = true;

      sb.append("rqst:");
      if (this.rqst == null) {
        sb.append("null");
      } else {
        sb.append(this.rqst);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (rqst != null) {
        rqst.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_next_notification_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_next_notification_argsStandardScheme getScheme() {
        return new get_next_notification_argsStandardScheme();
      }
    }

    private static class get_next_notification_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_next_notification_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_next_notification_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // RQST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.rqst = new NotificationEventRequest();
                struct.rqst.read(iprot);
                struct.setRqstIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_next_notification_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.rqst != null) {
          oprot.writeFieldBegin(RQST_FIELD_DESC);
          struct.rqst.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_next_notification_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_next_notification_argsTupleScheme getScheme() {
        return new get_next_notification_argsTupleScheme();
      }
    }

    private static class get_next_notification_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_next_notification_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_next_notification_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRqst()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRqst()) {
          struct.rqst.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_next_notification_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.rqst = new NotificationEventRequest();
          struct.rqst.read(iprot);
          struct.setRqstIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_next_notification_result implements org.apache.thrift.TBase<get_next_notification_result, get_next_notification_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_next_notification_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_next_notification_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_next_notification_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_next_notification_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable NotificationEventResponse success; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NotificationEventResponse.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_next_notification_result.class, metaDataMap);
    }

    public get_next_notification_result() {
    }

    public get_next_notification_result(
      NotificationEventResponse success)
    {
      this();
      this.success = success;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_next_notification_result(get_next_notification_result other) {
      if (other.isSetSuccess()) {
        this.success = new NotificationEventResponse(other.success);
      }
    }

    public get_next_notification_result deepCopy() {
      return new get_next_notification_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
    }

    @org.apache.thrift.annotation.Nullable
    public NotificationEventResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable NotificationEventResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((NotificationEventResponse)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_next_notification_result)
        return this.equals((get_next_notification_result)that);
      return false;
    }

    public boolean equals(get_next_notification_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_next_notification_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_next_notification_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_next_notification_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_next_notification_resultStandardScheme getScheme() {
        return new get_next_notification_resultStandardScheme();
      }
    }

    private static class get_next_notification_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_next_notification_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_next_notification_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new NotificationEventResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_next_notification_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_next_notification_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_next_notification_resultTupleScheme getScheme() {
        return new get_next_notification_resultTupleScheme();
      }
    }

    private static class get_next_notification_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_next_notification_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_next_notification_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_next_notification_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.success = new NotificationEventResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_current_notificationEventId_args implements org.apache.thrift.TBase<get_current_notificationEventId_args, get_current_notificationEventId_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_current_notificationEventId_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_current_notificationEventId_args");


    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_current_notificationEventId_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_current_notificationEventId_argsTupleSchemeFactory();


    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
;

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_current_notificationEventId_args.class, metaDataMap);
    }

    public get_current_notificationEventId_args() {
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_current_notificationEventId_args(get_current_notificationEventId_args other) {
    }

    public get_current_notificationEventId_args deepCopy() {
      return new get_current_notificationEventId_args(this);
    }

    @Override
    public void clear() {
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_current_notificationEventId_args)
        return this.equals((get_current_notificationEventId_args)that);
      return false;
    }

    public boolean equals(get_current_notificationEventId_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      return hashCode;
    }

    @Override
    public int compareTo(get_current_notificationEventId_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_current_notificationEventId_args(");
      boolean first = true;

      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_current_notificationEventId_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_current_notificationEventId_argsStandardScheme getScheme() {
        return new get_current_notificationEventId_argsStandardScheme();
      }
    }

    private static class get_current_notificationEventId_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_current_notificationEventId_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_current_notificationEventId_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_current_notificationEventId_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_current_notificationEventId_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_current_notificationEventId_argsTupleScheme getScheme() {
        return new get_current_notificationEventId_argsTupleScheme();
      }
    }

    private static class get_current_notificationEventId_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_current_notificationEventId_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_current_notificationEventId_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_current_notificationEventId_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_current_notificationEventId_result implements org.apache.thrift.TBase<get_current_notificationEventId_result, get_current_notificationEventId_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_current_notificationEventId_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_current_notificationEventId_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_current_notificationEventId_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_current_notificationEventId_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable CurrentNotificationEventId success; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CurrentNotificationEventId.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_current_notificationEventId_result.class, metaDataMap);
    }

    public get_current_notificationEventId_result() {
    }

    public get_current_notificationEventId_result(
      CurrentNotificationEventId success)
    {
      this();
      this.success = success;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_current_notificationEventId_result(get_current_notificationEventId_result other) {
      if (other.isSetSuccess()) {
        this.success = new CurrentNotificationEventId(other.success);
      }
    }

    public get_current_notificationEventId_result deepCopy() {
      return new get_current_notificationEventId_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
    }

    @org.apache.thrift.annotation.Nullable
    public CurrentNotificationEventId getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable CurrentNotificationEventId success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((CurrentNotificationEventId)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_current_notificationEventId_result)
        return this.equals((get_current_notificationEventId_result)that);
      return false;
    }

    public boolean equals(get_current_notificationEventId_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_current_notificationEventId_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_current_notificationEventId_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_current_notificationEventId_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_current_notificationEventId_resultStandardScheme getScheme() {
        return new get_current_notificationEventId_resultStandardScheme();
      }
    }

    private static class get_current_notificationEventId_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_current_notificationEventId_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_current_notificationEventId_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new CurrentNotificationEventId();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_current_notificationEventId_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_current_notificationEventId_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_current_notificationEventId_resultTupleScheme getScheme() {
        return new get_current_notificationEventId_resultTupleScheme();
      }
    }

    private static class get_current_notificationEventId_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_current_notificationEventId_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_current_notificationEventId_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_current_notificationEventId_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.success = new CurrentNotificationEventId();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_notification_events_count_args implements org.apache.thrift.TBase<get_notification_events_count_args, get_notification_events_count_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_notification_events_count_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_notification_events_count_args");

    private static final org.apache.thrift.protocol.TField RQST_FIELD_DESC = new org.apache.thrift.protocol.TField("rqst", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_notification_events_count_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_notification_events_count_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable NotificationEventsCountRequest rqst; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      RQST((short)1, "rqst");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // RQST
            return RQST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.RQST, new org.apache.thrift.meta_data.FieldMetaData("rqst", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NotificationEventsCountRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_notification_events_count_args.class, metaDataMap);
    }

    public get_notification_events_count_args() {
    }

    public get_notification_events_count_args(
      NotificationEventsCountRequest rqst)
    {
      this();
      this.rqst = rqst;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_notification_events_count_args(get_notification_events_count_args other) {
      if (other.isSetRqst()) {
        this.rqst = new NotificationEventsCountRequest(other.rqst);
      }
    }

    public get_notification_events_count_args deepCopy() {
      return new get_notification_events_count_args(this);
    }

    @Override
    public void clear() {
      this.rqst = null;
    }

    @org.apache.thrift.annotation.Nullable
    public NotificationEventsCountRequest getRqst() {
      return this.rqst;
    }

    public void setRqst(@org.apache.thrift.annotation.Nullable NotificationEventsCountRequest rqst) {
      this.rqst = rqst;
    }

    public void unsetRqst() {
      this.rqst = null;
    }

    /** Returns true if field rqst is set (has been assigned a value) and false otherwise */
    public boolean isSetRqst() {
      return this.rqst != null;
    }

    public void setRqstIsSet(boolean value) {
      if (!value) {
        this.rqst = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case RQST:
        if (value == null) {
          unsetRqst();
        } else {
          setRqst((NotificationEventsCountRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case RQST:
        return getRqst();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case RQST:
        return isSetRqst();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_notification_events_count_args)
        return this.equals((get_notification_events_count_args)that);
      return false;
    }

    public boolean equals(get_notification_events_count_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_rqst = true && this.isSetRqst();
      boolean that_present_rqst = true && that.isSetRqst();
      if (this_present_rqst || that_present_rqst) {
        if (!(this_present_rqst && that_present_rqst))
          return false;
        if (!this.rqst.equals(that.rqst))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRqst()) ? 131071 : 524287);
      if (isSetRqst())
        hashCode = hashCode * 8191 + rqst.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_notification_events_count_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRqst(), other.isSetRqst());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRqst()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rqst, other.rqst);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_notification_events_count_args(");
      boolean first = true;

      sb.append("rqst:");
      if (this.rqst == null) {
        sb.append("null");
      } else {
        sb.append(this.rqst);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (rqst != null) {
        rqst.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_notification_events_count_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_notification_events_count_argsStandardScheme getScheme() {
        return new get_notification_events_count_argsStandardScheme();
      }
    }

    private static class get_notification_events_count_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_notification_events_count_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_notification_events_count_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // RQST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.rqst = new NotificationEventsCountRequest();
                struct.rqst.read(iprot);
                struct.setRqstIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_notification_events_count_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.rqst != null) {
          oprot.writeFieldBegin(RQST_FIELD_DESC);
          struct.rqst.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_notification_events_count_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_notification_events_count_argsTupleScheme getScheme() {
        return new get_notification_events_count_argsTupleScheme();
      }
    }

    private static class get_notification_events_count_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_notification_events_count_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_notification_events_count_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRqst()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRqst()) {
          struct.rqst.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_notification_events_count_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.rqst = new NotificationEventsCountRequest();
          struct.rqst.read(iprot);
          struct.setRqstIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_notification_events_count_result implements org.apache.thrift.TBase<get_notification_events_count_result, get_notification_events_count_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_notification_events_count_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_notification_events_count_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_notification_events_count_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_notification_events_count_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable NotificationEventsCountResponse success; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NotificationEventsCountResponse.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_notification_events_count_result.class, metaDataMap);
    }

    public get_notification_events_count_result() {
    }

    public get_notification_events_count_result(
      NotificationEventsCountResponse success)
    {
      this();
      this.success = success;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_notification_events_count_result(get_notification_events_count_result other) {
      if (other.isSetSuccess()) {
        this.success = new NotificationEventsCountResponse(other.success);
      }
    }

    public get_notification_events_count_result deepCopy() {
      return new get_notification_events_count_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
    }

    @org.apache.thrift.annotation.Nullable
    public NotificationEventsCountResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable NotificationEventsCountResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((NotificationEventsCountResponse)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_notification_events_count_result)
        return this.equals((get_notification_events_count_result)that);
      return false;
    }

    public boolean equals(get_notification_events_count_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_notification_events_count_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_notification_events_count_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_notification_events_count_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_notification_events_count_resultStandardScheme getScheme() {
        return new get_notification_events_count_resultStandardScheme();
      }
    }

    private static class get_notification_events_count_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_notification_events_count_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_notification_events_count_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new NotificationEventsCountResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_notification_events_count_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_notification_events_count_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_notification_events_count_resultTupleScheme getScheme() {
        return new get_notification_events_count_resultTupleScheme();
      }
    }

    private static class get_notification_events_count_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_notification_events_count_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_notification_events_count_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_notification_events_count_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.success = new NotificationEventsCountResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class fire_listener_event_args implements org.apache.thrift.TBase<fire_listener_event_args, fire_listener_event_args._Fields>, java.io.Serializable, Cloneable, Comparable<fire_listener_event_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("fire_listener_event_args");

    private static final org.apache.thrift.protocol.TField RQST_FIELD_DESC = new org.apache.thrift.protocol.TField("rqst", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new fire_listener_event_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new fire_listener_event_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable FireEventRequest rqst; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      RQST((short)1, "rqst");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // RQST
            return RQST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.RQST, new org.apache.thrift.meta_data.FieldMetaData("rqst", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, FireEventRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(fire_listener_event_args.class, metaDataMap);
    }

    public fire_listener_event_args() {
    }

    public fire_listener_event_args(
      FireEventRequest rqst)
    {
      this();
      this.rqst = rqst;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public fire_listener_event_args(fire_listener_event_args other) {
      if (other.isSetRqst()) {
        this.rqst = new FireEventRequest(other.rqst);
      }
    }

    public fire_listener_event_args deepCopy() {
      return new fire_listener_event_args(this);
    }

    @Override
    public void clear() {
      this.rqst = null;
    }

    @org.apache.thrift.annotation.Nullable
    public FireEventRequest getRqst() {
      return this.rqst;
    }

    public void setRqst(@org.apache.thrift.annotation.Nullable FireEventRequest rqst) {
      this.rqst = rqst;
    }

    public void unsetRqst() {
      this.rqst = null;
    }

    /** Returns true if field rqst is set (has been assigned a value) and false otherwise */
    public boolean isSetRqst() {
      return this.rqst != null;
    }

    public void setRqstIsSet(boolean value) {
      if (!value) {
        this.rqst = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case RQST:
        if (value == null) {
          unsetRqst();
        } else {
          setRqst((FireEventRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case RQST:
        return getRqst();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case RQST:
        return isSetRqst();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof fire_listener_event_args)
        return this.equals((fire_listener_event_args)that);
      return false;
    }

    public boolean equals(fire_listener_event_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_rqst = true && this.isSetRqst();
      boolean that_present_rqst = true && that.isSetRqst();
      if (this_present_rqst || that_present_rqst) {
        if (!(this_present_rqst && that_present_rqst))
          return false;
        if (!this.rqst.equals(that.rqst))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRqst()) ? 131071 : 524287);
      if (isSetRqst())
        hashCode = hashCode * 8191 + rqst.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(fire_listener_event_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRqst(), other.isSetRqst());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRqst()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rqst, other.rqst);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("fire_listener_event_args(");
      boolean first = true;

      sb.append("rqst:");
      if (this.rqst == null) {
        sb.append("null");
      } else {
        sb.append(this.rqst);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (rqst != null) {
        rqst.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class fire_listener_event_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public fire_listener_event_argsStandardScheme getScheme() {
        return new fire_listener_event_argsStandardScheme();
      }
    }

    private static class fire_listener_event_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<fire_listener_event_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, fire_listener_event_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // RQST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.rqst = new FireEventRequest();
                struct.rqst.read(iprot);
                struct.setRqstIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, fire_listener_event_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.rqst != null) {
          oprot.writeFieldBegin(RQST_FIELD_DESC);
          struct.rqst.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class fire_listener_event_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public fire_listener_event_argsTupleScheme getScheme() {
        return new fire_listener_event_argsTupleScheme();
      }
    }

    private static class fire_listener_event_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<fire_listener_event_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, fire_listener_event_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRqst()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRqst()) {
          struct.rqst.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, fire_listener_event_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.rqst = new FireEventRequest();
          struct.rqst.read(iprot);
          struct.setRqstIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class fire_listener_event_result implements org.apache.thrift.TBase<fire_listener_event_result, fire_listener_event_result._Fields>, java.io.Serializable, Cloneable, Comparable<fire_listener_event_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("fire_listener_event_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new fire_listener_event_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new fire_listener_event_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable FireEventResponse success; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, FireEventResponse.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(fire_listener_event_result.class, metaDataMap);
    }

    public fire_listener_event_result() {
    }

    public fire_listener_event_result(
      FireEventResponse success)
    {
      this();
      this.success = success;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public fire_listener_event_result(fire_listener_event_result other) {
      if (other.isSetSuccess()) {
        this.success = new FireEventResponse(other.success);
      }
    }

    public fire_listener_event_result deepCopy() {
      return new fire_listener_event_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
    }

    @org.apache.thrift.annotation.Nullable
    public FireEventResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable FireEventResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((FireEventResponse)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof fire_listener_event_result)
        return this.equals((fire_listener_event_result)that);
      return false;
    }

    public boolean equals(fire_listener_event_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(fire_listener_event_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("fire_listener_event_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class fire_listener_event_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public fire_listener_event_resultStandardScheme getScheme() {
        return new fire_listener_event_resultStandardScheme();
      }
    }

    private static class fire_listener_event_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<fire_listener_event_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, fire_listener_event_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new FireEventResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, fire_listener_event_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class fire_listener_event_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public fire_listener_event_resultTupleScheme getScheme() {
        return new fire_listener_event_resultTupleScheme();
      }
    }

    private static class fire_listener_event_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<fire_listener_event_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, fire_listener_event_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, fire_listener_event_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.success = new FireEventResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class flushCache_args implements org.apache.thrift.TBase<flushCache_args, flushCache_args._Fields>, java.io.Serializable, Cloneable, Comparable<flushCache_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("flushCache_args");


    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new flushCache_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new flushCache_argsTupleSchemeFactory();


    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
;

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(flushCache_args.class, metaDataMap);
    }

    public flushCache_args() {
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public flushCache_args(flushCache_args other) {
    }

    public flushCache_args deepCopy() {
      return new flushCache_args(this);
    }

    @Override
    public void clear() {
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof flushCache_args)
        return this.equals((flushCache_args)that);
      return false;
    }

    public boolean equals(flushCache_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      return hashCode;
    }

    @Override
    public int compareTo(flushCache_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("flushCache_args(");
      boolean first = true;

      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class flushCache_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public flushCache_argsStandardScheme getScheme() {
        return new flushCache_argsStandardScheme();
      }
    }

    private static class flushCache_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<flushCache_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, flushCache_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, flushCache_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class flushCache_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public flushCache_argsTupleScheme getScheme() {
        return new flushCache_argsTupleScheme();
      }
    }

    private static class flushCache_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<flushCache_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, flushCache_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, flushCache_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class flushCache_result implements org.apache.thrift.TBase<flushCache_result, flushCache_result._Fields>, java.io.Serializable, Cloneable, Comparable<flushCache_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("flushCache_result");


    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new flushCache_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new flushCache_resultTupleSchemeFactory();


    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
;

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(flushCache_result.class, metaDataMap);
    }

    public flushCache_result() {
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public flushCache_result(flushCache_result other) {
    }

    public flushCache_result deepCopy() {
      return new flushCache_result(this);
    }

    @Override
    public void clear() {
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof flushCache_result)
        return this.equals((flushCache_result)that);
      return false;
    }

    public boolean equals(flushCache_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      return hashCode;
    }

    @Override
    public int compareTo(flushCache_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("flushCache_result(");
      boolean first = true;

      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class flushCache_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public flushCache_resultStandardScheme getScheme() {
        return new flushCache_resultStandardScheme();
      }
    }

    private static class flushCache_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<flushCache_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, flushCache_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, flushCache_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class flushCache_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public flushCache_resultTupleScheme getScheme() {
        return new flushCache_resultTupleScheme();
      }
    }

    private static class flushCache_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<flushCache_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, flushCache_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, flushCache_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class cm_recycle_args implements org.apache.thrift.TBase<cm_recycle_args, cm_recycle_args._Fields>, java.io.Serializable, Cloneable, Comparable<cm_recycle_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("cm_recycle_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new cm_recycle_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new cm_recycle_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable CmRecycleRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CmRecycleRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(cm_recycle_args.class, metaDataMap);
    }

    public cm_recycle_args() {
    }

    public cm_recycle_args(
      CmRecycleRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public cm_recycle_args(cm_recycle_args other) {
      if (other.isSetRequest()) {
        this.request = new CmRecycleRequest(other.request);
      }
    }

    public cm_recycle_args deepCopy() {
      return new cm_recycle_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    @org.apache.thrift.annotation.Nullable
    public CmRecycleRequest getRequest() {
      return this.request;
    }

    public void setRequest(@org.apache.thrift.annotation.Nullable CmRecycleRequest request) {
      this.request = request;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((CmRecycleRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof cm_recycle_args)
        return this.equals((cm_recycle_args)that);
      return false;
    }

    public boolean equals(cm_recycle_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRequest()) ? 131071 : 524287);
      if (isSetRequest())
        hashCode = hashCode * 8191 + request.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(cm_recycle_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRequest(), other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("cm_recycle_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class cm_recycle_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public cm_recycle_argsStandardScheme getScheme() {
        return new cm_recycle_argsStandardScheme();
      }
    }

    private static class cm_recycle_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<cm_recycle_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, cm_recycle_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new CmRecycleRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, cm_recycle_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class cm_recycle_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public cm_recycle_argsTupleScheme getScheme() {
        return new cm_recycle_argsTupleScheme();
      }
    }

    private static class cm_recycle_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<cm_recycle_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, cm_recycle_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, cm_recycle_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new CmRecycleRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class cm_recycle_result implements org.apache.thrift.TBase<cm_recycle_result, cm_recycle_result._Fields>, java.io.Serializable, Cloneable, Comparable<cm_recycle_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("cm_recycle_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new cm_recycle_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new cm_recycle_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable CmRecycleResponse success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CmRecycleResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(cm_recycle_result.class, metaDataMap);
    }

    public cm_recycle_result() {
    }

    public cm_recycle_result(
      CmRecycleResponse success,
      MetaException o1)
    {
      this();
      this.success = success;
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public cm_recycle_result(cm_recycle_result other) {
      if (other.isSetSuccess()) {
        this.success = new CmRecycleResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public cm_recycle_result deepCopy() {
      return new cm_recycle_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public CmRecycleResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable CmRecycleResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((CmRecycleResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof cm_recycle_result)
        return this.equals((cm_recycle_result)that);
      return false;
    }

    public boolean equals(cm_recycle_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(cm_recycle_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("cm_recycle_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class cm_recycle_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public cm_recycle_resultStandardScheme getScheme() {
        return new cm_recycle_resultStandardScheme();
      }
    }

    private static class cm_recycle_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<cm_recycle_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, cm_recycle_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new CmRecycleResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, cm_recycle_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class cm_recycle_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public cm_recycle_resultTupleScheme getScheme() {
        return new cm_recycle_resultTupleScheme();
      }
    }

    private static class cm_recycle_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<cm_recycle_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, cm_recycle_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, cm_recycle_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.success = new CmRecycleResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_file_metadata_by_expr_args implements org.apache.thrift.TBase<get_file_metadata_by_expr_args, get_file_metadata_by_expr_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_file_metadata_by_expr_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_file_metadata_by_expr_args");

    private static final org.apache.thrift.protocol.TField REQ_FIELD_DESC = new org.apache.thrift.protocol.TField("req", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_file_metadata_by_expr_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_file_metadata_by_expr_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable GetFileMetadataByExprRequest req; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQ((short)1, "req");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQ
            return REQ;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQ, new org.apache.thrift.meta_data.FieldMetaData("req", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetFileMetadataByExprRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_file_metadata_by_expr_args.class, metaDataMap);
    }

    public get_file_metadata_by_expr_args() {
    }

    public get_file_metadata_by_expr_args(
      GetFileMetadataByExprRequest req)
    {
      this();
      this.req = req;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_file_metadata_by_expr_args(get_file_metadata_by_expr_args other) {
      if (other.isSetReq()) {
        this.req = new GetFileMetadataByExprRequest(other.req);
      }
    }

    public get_file_metadata_by_expr_args deepCopy() {
      return new get_file_metadata_by_expr_args(this);
    }

    @Override
    public void clear() {
      this.req = null;
    }

    @org.apache.thrift.annotation.Nullable
    public GetFileMetadataByExprRequest getReq() {
      return this.req;
    }

    public void setReq(@org.apache.thrift.annotation.Nullable GetFileMetadataByExprRequest req) {
      this.req = req;
    }

    public void unsetReq() {
      this.req = null;
    }

    /** Returns true if field req is set (has been assigned a value) and false otherwise */
    public boolean isSetReq() {
      return this.req != null;
    }

    public void setReqIsSet(boolean value) {
      if (!value) {
        this.req = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQ:
        if (value == null) {
          unsetReq();
        } else {
          setReq((GetFileMetadataByExprRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQ:
        return getReq();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQ:
        return isSetReq();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_file_metadata_by_expr_args)
        return this.equals((get_file_metadata_by_expr_args)that);
      return false;
    }

    public boolean equals(get_file_metadata_by_expr_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_req = true && this.isSetReq();
      boolean that_present_req = true && that.isSetReq();
      if (this_present_req || that_present_req) {
        if (!(this_present_req && that_present_req))
          return false;
        if (!this.req.equals(that.req))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetReq()) ? 131071 : 524287);
      if (isSetReq())
        hashCode = hashCode * 8191 + req.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_file_metadata_by_expr_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetReq(), other.isSetReq());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetReq()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.req, other.req);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_file_metadata_by_expr_args(");
      boolean first = true;

      sb.append("req:");
      if (this.req == null) {
        sb.append("null");
      } else {
        sb.append(this.req);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (req != null) {
        req.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_file_metadata_by_expr_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_file_metadata_by_expr_argsStandardScheme getScheme() {
        return new get_file_metadata_by_expr_argsStandardScheme();
      }
    }

    private static class get_file_metadata_by_expr_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_file_metadata_by_expr_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_file_metadata_by_expr_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQ
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.req = new GetFileMetadataByExprRequest();
                struct.req.read(iprot);
                struct.setReqIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_file_metadata_by_expr_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.req != null) {
          oprot.writeFieldBegin(REQ_FIELD_DESC);
          struct.req.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_file_metadata_by_expr_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_file_metadata_by_expr_argsTupleScheme getScheme() {
        return new get_file_metadata_by_expr_argsTupleScheme();
      }
    }

    private static class get_file_metadata_by_expr_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_file_metadata_by_expr_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_file_metadata_by_expr_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetReq()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetReq()) {
          struct.req.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_file_metadata_by_expr_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.req = new GetFileMetadataByExprRequest();
          struct.req.read(iprot);
          struct.setReqIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_file_metadata_by_expr_result implements org.apache.thrift.TBase<get_file_metadata_by_expr_result, get_file_metadata_by_expr_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_file_metadata_by_expr_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_file_metadata_by_expr_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_file_metadata_by_expr_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_file_metadata_by_expr_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable GetFileMetadataByExprResult success; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetFileMetadataByExprResult.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_file_metadata_by_expr_result.class, metaDataMap);
    }

    public get_file_metadata_by_expr_result() {
    }

    public get_file_metadata_by_expr_result(
      GetFileMetadataByExprResult success)
    {
      this();
      this.success = success;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_file_metadata_by_expr_result(get_file_metadata_by_expr_result other) {
      if (other.isSetSuccess()) {
        this.success = new GetFileMetadataByExprResult(other.success);
      }
    }

    public get_file_metadata_by_expr_result deepCopy() {
      return new get_file_metadata_by_expr_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
    }

    @org.apache.thrift.annotation.Nullable
    public GetFileMetadataByExprResult getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable GetFileMetadataByExprResult success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((GetFileMetadataByExprResult)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_file_metadata_by_expr_result)
        return this.equals((get_file_metadata_by_expr_result)that);
      return false;
    }

    public boolean equals(get_file_metadata_by_expr_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_file_metadata_by_expr_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_file_metadata_by_expr_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_file_metadata_by_expr_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_file_metadata_by_expr_resultStandardScheme getScheme() {
        return new get_file_metadata_by_expr_resultStandardScheme();
      }
    }

    private static class get_file_metadata_by_expr_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_file_metadata_by_expr_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_file_metadata_by_expr_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new GetFileMetadataByExprResult();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_file_metadata_by_expr_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_file_metadata_by_expr_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_file_metadata_by_expr_resultTupleScheme getScheme() {
        return new get_file_metadata_by_expr_resultTupleScheme();
      }
    }

    private static class get_file_metadata_by_expr_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_file_metadata_by_expr_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_file_metadata_by_expr_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_file_metadata_by_expr_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.success = new GetFileMetadataByExprResult();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_file_metadata_args implements org.apache.thrift.TBase<get_file_metadata_args, get_file_metadata_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_file_metadata_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_file_metadata_args");

    private static final org.apache.thrift.protocol.TField REQ_FIELD_DESC = new org.apache.thrift.protocol.TField("req", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_file_metadata_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_file_metadata_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable GetFileMetadataRequest req; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQ((short)1, "req");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQ
            return REQ;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQ, new org.apache.thrift.meta_data.FieldMetaData("req", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetFileMetadataRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_file_metadata_args.class, metaDataMap);
    }

    public get_file_metadata_args() {
    }

    public get_file_metadata_args(
      GetFileMetadataRequest req)
    {
      this();
      this.req = req;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_file_metadata_args(get_file_metadata_args other) {
      if (other.isSetReq()) {
        this.req = new GetFileMetadataRequest(other.req);
      }
    }

    public get_file_metadata_args deepCopy() {
      return new get_file_metadata_args(this);
    }

    @Override
    public void clear() {
      this.req = null;
    }

    @org.apache.thrift.annotation.Nullable
    public GetFileMetadataRequest getReq() {
      return this.req;
    }

    public void setReq(@org.apache.thrift.annotation.Nullable GetFileMetadataRequest req) {
      this.req = req;
    }

    public void unsetReq() {
      this.req = null;
    }

    /** Returns true if field req is set (has been assigned a value) and false otherwise */
    public boolean isSetReq() {
      return this.req != null;
    }

    public void setReqIsSet(boolean value) {
      if (!value) {
        this.req = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQ:
        if (value == null) {
          unsetReq();
        } else {
          setReq((GetFileMetadataRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQ:
        return getReq();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQ:
        return isSetReq();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_file_metadata_args)
        return this.equals((get_file_metadata_args)that);
      return false;
    }

    public boolean equals(get_file_metadata_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_req = true && this.isSetReq();
      boolean that_present_req = true && that.isSetReq();
      if (this_present_req || that_present_req) {
        if (!(this_present_req && that_present_req))
          return false;
        if (!this.req.equals(that.req))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetReq()) ? 131071 : 524287);
      if (isSetReq())
        hashCode = hashCode * 8191 + req.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_file_metadata_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetReq(), other.isSetReq());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetReq()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.req, other.req);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_file_metadata_args(");
      boolean first = true;

      sb.append("req:");
      if (this.req == null) {
        sb.append("null");
      } else {
        sb.append(this.req);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (req != null) {
        req.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_file_metadata_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_file_metadata_argsStandardScheme getScheme() {
        return new get_file_metadata_argsStandardScheme();
      }
    }

    private static class get_file_metadata_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_file_metadata_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_file_metadata_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQ
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.req = new GetFileMetadataRequest();
                struct.req.read(iprot);
                struct.setReqIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_file_metadata_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.req != null) {
          oprot.writeFieldBegin(REQ_FIELD_DESC);
          struct.req.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_file_metadata_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_file_metadata_argsTupleScheme getScheme() {
        return new get_file_metadata_argsTupleScheme();
      }
    }

    private static class get_file_metadata_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_file_metadata_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_file_metadata_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetReq()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetReq()) {
          struct.req.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_file_metadata_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.req = new GetFileMetadataRequest();
          struct.req.read(iprot);
          struct.setReqIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_file_metadata_result implements org.apache.thrift.TBase<get_file_metadata_result, get_file_metadata_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_file_metadata_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_file_metadata_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_file_metadata_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_file_metadata_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable GetFileMetadataResult success; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetFileMetadataResult.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_file_metadata_result.class, metaDataMap);
    }

    public get_file_metadata_result() {
    }

    public get_file_metadata_result(
      GetFileMetadataResult success)
    {
      this();
      this.success = success;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_file_metadata_result(get_file_metadata_result other) {
      if (other.isSetSuccess()) {
        this.success = new GetFileMetadataResult(other.success);
      }
    }

    public get_file_metadata_result deepCopy() {
      return new get_file_metadata_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
    }

    @org.apache.thrift.annotation.Nullable
    public GetFileMetadataResult getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable GetFileMetadataResult success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((GetFileMetadataResult)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_file_metadata_result)
        return this.equals((get_file_metadata_result)that);
      return false;
    }

    public boolean equals(get_file_metadata_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_file_metadata_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_file_metadata_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_file_metadata_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_file_metadata_resultStandardScheme getScheme() {
        return new get_file_metadata_resultStandardScheme();
      }
    }

    private static class get_file_metadata_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_file_metadata_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_file_metadata_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new GetFileMetadataResult();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_file_metadata_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_file_metadata_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_file_metadata_resultTupleScheme getScheme() {
        return new get_file_metadata_resultTupleScheme();
      }
    }

    private static class get_file_metadata_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_file_metadata_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_file_metadata_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_file_metadata_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.success = new GetFileMetadataResult();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class put_file_metadata_args implements org.apache.thrift.TBase<put_file_metadata_args, put_file_metadata_args._Fields>, java.io.Serializable, Cloneable, Comparable<put_file_metadata_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("put_file_metadata_args");

    private static final org.apache.thrift.protocol.TField REQ_FIELD_DESC = new org.apache.thrift.protocol.TField("req", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new put_file_metadata_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new put_file_metadata_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable PutFileMetadataRequest req; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQ((short)1, "req");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQ
            return REQ;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQ, new org.apache.thrift.meta_data.FieldMetaData("req", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, PutFileMetadataRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(put_file_metadata_args.class, metaDataMap);
    }

    public put_file_metadata_args() {
    }

    public put_file_metadata_args(
      PutFileMetadataRequest req)
    {
      this();
      this.req = req;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public put_file_metadata_args(put_file_metadata_args other) {
      if (other.isSetReq()) {
        this.req = new PutFileMetadataRequest(other.req);
      }
    }

    public put_file_metadata_args deepCopy() {
      return new put_file_metadata_args(this);
    }

    @Override
    public void clear() {
      this.req = null;
    }

    @org.apache.thrift.annotation.Nullable
    public PutFileMetadataRequest getReq() {
      return this.req;
    }

    public void setReq(@org.apache.thrift.annotation.Nullable PutFileMetadataRequest req) {
      this.req = req;
    }

    public void unsetReq() {
      this.req = null;
    }

    /** Returns true if field req is set (has been assigned a value) and false otherwise */
    public boolean isSetReq() {
      return this.req != null;
    }

    public void setReqIsSet(boolean value) {
      if (!value) {
        this.req = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQ:
        if (value == null) {
          unsetReq();
        } else {
          setReq((PutFileMetadataRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQ:
        return getReq();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQ:
        return isSetReq();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof put_file_metadata_args)
        return this.equals((put_file_metadata_args)that);
      return false;
    }

    public boolean equals(put_file_metadata_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_req = true && this.isSetReq();
      boolean that_present_req = true && that.isSetReq();
      if (this_present_req || that_present_req) {
        if (!(this_present_req && that_present_req))
          return false;
        if (!this.req.equals(that.req))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetReq()) ? 131071 : 524287);
      if (isSetReq())
        hashCode = hashCode * 8191 + req.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(put_file_metadata_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetReq(), other.isSetReq());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetReq()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.req, other.req);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("put_file_metadata_args(");
      boolean first = true;

      sb.append("req:");
      if (this.req == null) {
        sb.append("null");
      } else {
        sb.append(this.req);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (req != null) {
        req.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class put_file_metadata_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public put_file_metadata_argsStandardScheme getScheme() {
        return new put_file_metadata_argsStandardScheme();
      }
    }

    private static class put_file_metadata_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<put_file_metadata_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, put_file_metadata_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQ
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.req = new PutFileMetadataRequest();
                struct.req.read(iprot);
                struct.setReqIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, put_file_metadata_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.req != null) {
          oprot.writeFieldBegin(REQ_FIELD_DESC);
          struct.req.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class put_file_metadata_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public put_file_metadata_argsTupleScheme getScheme() {
        return new put_file_metadata_argsTupleScheme();
      }
    }

    private static class put_file_metadata_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<put_file_metadata_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, put_file_metadata_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetReq()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetReq()) {
          struct.req.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, put_file_metadata_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.req = new PutFileMetadataRequest();
          struct.req.read(iprot);
          struct.setReqIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class put_file_metadata_result implements org.apache.thrift.TBase<put_file_metadata_result, put_file_metadata_result._Fields>, java.io.Serializable, Cloneable, Comparable<put_file_metadata_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("put_file_metadata_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new put_file_metadata_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new put_file_metadata_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable PutFileMetadataResult success; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, PutFileMetadataResult.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(put_file_metadata_result.class, metaDataMap);
    }

    public put_file_metadata_result() {
    }

    public put_file_metadata_result(
      PutFileMetadataResult success)
    {
      this();
      this.success = success;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public put_file_metadata_result(put_file_metadata_result other) {
      if (other.isSetSuccess()) {
        this.success = new PutFileMetadataResult(other.success);
      }
    }

    public put_file_metadata_result deepCopy() {
      return new put_file_metadata_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
    }

    @org.apache.thrift.annotation.Nullable
    public PutFileMetadataResult getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable PutFileMetadataResult success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((PutFileMetadataResult)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof put_file_metadata_result)
        return this.equals((put_file_metadata_result)that);
      return false;
    }

    public boolean equals(put_file_metadata_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(put_file_metadata_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("put_file_metadata_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class put_file_metadata_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public put_file_metadata_resultStandardScheme getScheme() {
        return new put_file_metadata_resultStandardScheme();
      }
    }

    private static class put_file_metadata_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<put_file_metadata_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, put_file_metadata_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new PutFileMetadataResult();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, put_file_metadata_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class put_file_metadata_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public put_file_metadata_resultTupleScheme getScheme() {
        return new put_file_metadata_resultTupleScheme();
      }
    }

    private static class put_file_metadata_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<put_file_metadata_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, put_file_metadata_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, put_file_metadata_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.success = new PutFileMetadataResult();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class clear_file_metadata_args implements org.apache.thrift.TBase<clear_file_metadata_args, clear_file_metadata_args._Fields>, java.io.Serializable, Cloneable, Comparable<clear_file_metadata_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("clear_file_metadata_args");

    private static final org.apache.thrift.protocol.TField REQ_FIELD_DESC = new org.apache.thrift.protocol.TField("req", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new clear_file_metadata_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new clear_file_metadata_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable ClearFileMetadataRequest req; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQ((short)1, "req");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQ
            return REQ;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQ, new org.apache.thrift.meta_data.FieldMetaData("req", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ClearFileMetadataRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(clear_file_metadata_args.class, metaDataMap);
    }

    public clear_file_metadata_args() {
    }

    public clear_file_metadata_args(
      ClearFileMetadataRequest req)
    {
      this();
      this.req = req;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public clear_file_metadata_args(clear_file_metadata_args other) {
      if (other.isSetReq()) {
        this.req = new ClearFileMetadataRequest(other.req);
      }
    }

    public clear_file_metadata_args deepCopy() {
      return new clear_file_metadata_args(this);
    }

    @Override
    public void clear() {
      this.req = null;
    }

    @org.apache.thrift.annotation.Nullable
    public ClearFileMetadataRequest getReq() {
      return this.req;
    }

    public void setReq(@org.apache.thrift.annotation.Nullable ClearFileMetadataRequest req) {
      this.req = req;
    }

    public void unsetReq() {
      this.req = null;
    }

    /** Returns true if field req is set (has been assigned a value) and false otherwise */
    public boolean isSetReq() {
      return this.req != null;
    }

    public void setReqIsSet(boolean value) {
      if (!value) {
        this.req = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQ:
        if (value == null) {
          unsetReq();
        } else {
          setReq((ClearFileMetadataRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQ:
        return getReq();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQ:
        return isSetReq();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof clear_file_metadata_args)
        return this.equals((clear_file_metadata_args)that);
      return false;
    }

    public boolean equals(clear_file_metadata_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_req = true && this.isSetReq();
      boolean that_present_req = true && that.isSetReq();
      if (this_present_req || that_present_req) {
        if (!(this_present_req && that_present_req))
          return false;
        if (!this.req.equals(that.req))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetReq()) ? 131071 : 524287);
      if (isSetReq())
        hashCode = hashCode * 8191 + req.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(clear_file_metadata_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetReq(), other.isSetReq());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetReq()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.req, other.req);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("clear_file_metadata_args(");
      boolean first = true;

      sb.append("req:");
      if (this.req == null) {
        sb.append("null");
      } else {
        sb.append(this.req);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (req != null) {
        req.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class clear_file_metadata_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public clear_file_metadata_argsStandardScheme getScheme() {
        return new clear_file_metadata_argsStandardScheme();
      }
    }

    private static class clear_file_metadata_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<clear_file_metadata_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, clear_file_metadata_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQ
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.req = new ClearFileMetadataRequest();
                struct.req.read(iprot);
                struct.setReqIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, clear_file_metadata_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.req != null) {
          oprot.writeFieldBegin(REQ_FIELD_DESC);
          struct.req.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class clear_file_metadata_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public clear_file_metadata_argsTupleScheme getScheme() {
        return new clear_file_metadata_argsTupleScheme();
      }
    }

    private static class clear_file_metadata_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<clear_file_metadata_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, clear_file_metadata_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetReq()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetReq()) {
          struct.req.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, clear_file_metadata_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.req = new ClearFileMetadataRequest();
          struct.req.read(iprot);
          struct.setReqIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class clear_file_metadata_result implements org.apache.thrift.TBase<clear_file_metadata_result, clear_file_metadata_result._Fields>, java.io.Serializable, Cloneable, Comparable<clear_file_metadata_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("clear_file_metadata_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new clear_file_metadata_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new clear_file_metadata_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable ClearFileMetadataResult success; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ClearFileMetadataResult.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(clear_file_metadata_result.class, metaDataMap);
    }

    public clear_file_metadata_result() {
    }

    public clear_file_metadata_result(
      ClearFileMetadataResult success)
    {
      this();
      this.success = success;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public clear_file_metadata_result(clear_file_metadata_result other) {
      if (other.isSetSuccess()) {
        this.success = new ClearFileMetadataResult(other.success);
      }
    }

    public clear_file_metadata_result deepCopy() {
      return new clear_file_metadata_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
    }

    @org.apache.thrift.annotation.Nullable
    public ClearFileMetadataResult getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable ClearFileMetadataResult success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((ClearFileMetadataResult)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof clear_file_metadata_result)
        return this.equals((clear_file_metadata_result)that);
      return false;
    }

    public boolean equals(clear_file_metadata_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(clear_file_metadata_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("clear_file_metadata_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class clear_file_metadata_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public clear_file_metadata_resultStandardScheme getScheme() {
        return new clear_file_metadata_resultStandardScheme();
      }
    }

    private static class clear_file_metadata_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<clear_file_metadata_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, clear_file_metadata_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new ClearFileMetadataResult();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, clear_file_metadata_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class clear_file_metadata_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public clear_file_metadata_resultTupleScheme getScheme() {
        return new clear_file_metadata_resultTupleScheme();
      }
    }

    private static class clear_file_metadata_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<clear_file_metadata_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, clear_file_metadata_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, clear_file_metadata_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.success = new ClearFileMetadataResult();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class cache_file_metadata_args implements org.apache.thrift.TBase<cache_file_metadata_args, cache_file_metadata_args._Fields>, java.io.Serializable, Cloneable, Comparable<cache_file_metadata_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("cache_file_metadata_args");

    private static final org.apache.thrift.protocol.TField REQ_FIELD_DESC = new org.apache.thrift.protocol.TField("req", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new cache_file_metadata_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new cache_file_metadata_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable CacheFileMetadataRequest req; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQ((short)1, "req");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQ
            return REQ;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQ, new org.apache.thrift.meta_data.FieldMetaData("req", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CacheFileMetadataRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(cache_file_metadata_args.class, metaDataMap);
    }

    public cache_file_metadata_args() {
    }

    public cache_file_metadata_args(
      CacheFileMetadataRequest req)
    {
      this();
      this.req = req;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public cache_file_metadata_args(cache_file_metadata_args other) {
      if (other.isSetReq()) {
        this.req = new CacheFileMetadataRequest(other.req);
      }
    }

    public cache_file_metadata_args deepCopy() {
      return new cache_file_metadata_args(this);
    }

    @Override
    public void clear() {
      this.req = null;
    }

    @org.apache.thrift.annotation.Nullable
    public CacheFileMetadataRequest getReq() {
      return this.req;
    }

    public void setReq(@org.apache.thrift.annotation.Nullable CacheFileMetadataRequest req) {
      this.req = req;
    }

    public void unsetReq() {
      this.req = null;
    }

    /** Returns true if field req is set (has been assigned a value) and false otherwise */
    public boolean isSetReq() {
      return this.req != null;
    }

    public void setReqIsSet(boolean value) {
      if (!value) {
        this.req = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQ:
        if (value == null) {
          unsetReq();
        } else {
          setReq((CacheFileMetadataRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQ:
        return getReq();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQ:
        return isSetReq();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof cache_file_metadata_args)
        return this.equals((cache_file_metadata_args)that);
      return false;
    }

    public boolean equals(cache_file_metadata_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_req = true && this.isSetReq();
      boolean that_present_req = true && that.isSetReq();
      if (this_present_req || that_present_req) {
        if (!(this_present_req && that_present_req))
          return false;
        if (!this.req.equals(that.req))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetReq()) ? 131071 : 524287);
      if (isSetReq())
        hashCode = hashCode * 8191 + req.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(cache_file_metadata_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetReq(), other.isSetReq());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetReq()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.req, other.req);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("cache_file_metadata_args(");
      boolean first = true;

      sb.append("req:");
      if (this.req == null) {
        sb.append("null");
      } else {
        sb.append(this.req);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (req != null) {
        req.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class cache_file_metadata_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public cache_file_metadata_argsStandardScheme getScheme() {
        return new cache_file_metadata_argsStandardScheme();
      }
    }

    private static class cache_file_metadata_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<cache_file_metadata_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, cache_file_metadata_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQ
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.req = new CacheFileMetadataRequest();
                struct.req.read(iprot);
                struct.setReqIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, cache_file_metadata_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.req != null) {
          oprot.writeFieldBegin(REQ_FIELD_DESC);
          struct.req.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class cache_file_metadata_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public cache_file_metadata_argsTupleScheme getScheme() {
        return new cache_file_metadata_argsTupleScheme();
      }
    }

    private static class cache_file_metadata_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<cache_file_metadata_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, cache_file_metadata_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetReq()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetReq()) {
          struct.req.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, cache_file_metadata_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.req = new CacheFileMetadataRequest();
          struct.req.read(iprot);
          struct.setReqIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class cache_file_metadata_result implements org.apache.thrift.TBase<cache_file_metadata_result, cache_file_metadata_result._Fields>, java.io.Serializable, Cloneable, Comparable<cache_file_metadata_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("cache_file_metadata_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new cache_file_metadata_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new cache_file_metadata_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable CacheFileMetadataResult success; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CacheFileMetadataResult.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(cache_file_metadata_result.class, metaDataMap);
    }

    public cache_file_metadata_result() {
    }

    public cache_file_metadata_result(
      CacheFileMetadataResult success)
    {
      this();
      this.success = success;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public cache_file_metadata_result(cache_file_metadata_result other) {
      if (other.isSetSuccess()) {
        this.success = new CacheFileMetadataResult(other.success);
      }
    }

    public cache_file_metadata_result deepCopy() {
      return new cache_file_metadata_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
    }

    @org.apache.thrift.annotation.Nullable
    public CacheFileMetadataResult getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable CacheFileMetadataResult success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((CacheFileMetadataResult)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof cache_file_metadata_result)
        return this.equals((cache_file_metadata_result)that);
      return false;
    }

    public boolean equals(cache_file_metadata_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(cache_file_metadata_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("cache_file_metadata_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class cache_file_metadata_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public cache_file_metadata_resultStandardScheme getScheme() {
        return new cache_file_metadata_resultStandardScheme();
      }
    }

    private static class cache_file_metadata_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<cache_file_metadata_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, cache_file_metadata_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new CacheFileMetadataResult();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, cache_file_metadata_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class cache_file_metadata_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public cache_file_metadata_resultTupleScheme getScheme() {
        return new cache_file_metadata_resultTupleScheme();
      }
    }

    private static class cache_file_metadata_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<cache_file_metadata_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, cache_file_metadata_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, cache_file_metadata_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.success = new CacheFileMetadataResult();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_metastore_db_uuid_args implements org.apache.thrift.TBase<get_metastore_db_uuid_args, get_metastore_db_uuid_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_metastore_db_uuid_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_metastore_db_uuid_args");


    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_metastore_db_uuid_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_metastore_db_uuid_argsTupleSchemeFactory();


    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
;

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_metastore_db_uuid_args.class, metaDataMap);
    }

    public get_metastore_db_uuid_args() {
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_metastore_db_uuid_args(get_metastore_db_uuid_args other) {
    }

    public get_metastore_db_uuid_args deepCopy() {
      return new get_metastore_db_uuid_args(this);
    }

    @Override
    public void clear() {
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_metastore_db_uuid_args)
        return this.equals((get_metastore_db_uuid_args)that);
      return false;
    }

    public boolean equals(get_metastore_db_uuid_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      return hashCode;
    }

    @Override
    public int compareTo(get_metastore_db_uuid_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_metastore_db_uuid_args(");
      boolean first = true;

      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_metastore_db_uuid_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_metastore_db_uuid_argsStandardScheme getScheme() {
        return new get_metastore_db_uuid_argsStandardScheme();
      }
    }

    private static class get_metastore_db_uuid_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_metastore_db_uuid_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_metastore_db_uuid_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_metastore_db_uuid_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_metastore_db_uuid_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_metastore_db_uuid_argsTupleScheme getScheme() {
        return new get_metastore_db_uuid_argsTupleScheme();
      }
    }

    private static class get_metastore_db_uuid_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_metastore_db_uuid_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_metastore_db_uuid_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_metastore_db_uuid_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_metastore_db_uuid_result implements org.apache.thrift.TBase<get_metastore_db_uuid_result, get_metastore_db_uuid_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_metastore_db_uuid_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_metastore_db_uuid_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_metastore_db_uuid_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_metastore_db_uuid_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_metastore_db_uuid_result.class, metaDataMap);
    }

    public get_metastore_db_uuid_result() {
    }

    public get_metastore_db_uuid_result(
      java.lang.String success,
      MetaException o1)
    {
      this();
      this.success = success;
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_metastore_db_uuid_result(get_metastore_db_uuid_result other) {
      if (other.isSetSuccess()) {
        this.success = other.success;
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public get_metastore_db_uuid_result deepCopy() {
      return new get_metastore_db_uuid_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.lang.String success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.lang.String)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_metastore_db_uuid_result)
        return this.equals((get_metastore_db_uuid_result)that);
      return false;
    }

    public boolean equals(get_metastore_db_uuid_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_metastore_db_uuid_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_metastore_db_uuid_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_metastore_db_uuid_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_metastore_db_uuid_resultStandardScheme getScheme() {
        return new get_metastore_db_uuid_resultStandardScheme();
      }
    }

    private static class get_metastore_db_uuid_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_metastore_db_uuid_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_metastore_db_uuid_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.success = iprot.readString();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_metastore_db_uuid_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeString(struct.success);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_metastore_db_uuid_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_metastore_db_uuid_resultTupleScheme getScheme() {
        return new get_metastore_db_uuid_resultTupleScheme();
      }
    }

    private static class get_metastore_db_uuid_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_metastore_db_uuid_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_metastore_db_uuid_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          oprot.writeString(struct.success);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_metastore_db_uuid_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.success = iprot.readString();
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_resource_plan_args implements org.apache.thrift.TBase<create_resource_plan_args, create_resource_plan_args._Fields>, java.io.Serializable, Cloneable, Comparable<create_resource_plan_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("create_resource_plan_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new create_resource_plan_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new create_resource_plan_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable WMCreateResourcePlanRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WMCreateResourcePlanRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(create_resource_plan_args.class, metaDataMap);
    }

    public create_resource_plan_args() {
    }

    public create_resource_plan_args(
      WMCreateResourcePlanRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public create_resource_plan_args(create_resource_plan_args other) {
      if (other.isSetRequest()) {
        this.request = new WMCreateResourcePlanRequest(other.request);
      }
    }

    public create_resource_plan_args deepCopy() {
      return new create_resource_plan_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    @org.apache.thrift.annotation.Nullable
    public WMCreateResourcePlanRequest getRequest() {
      return this.request;
    }

    public void setRequest(@org.apache.thrift.annotation.Nullable WMCreateResourcePlanRequest request) {
      this.request = request;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((WMCreateResourcePlanRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof create_resource_plan_args)
        return this.equals((create_resource_plan_args)that);
      return false;
    }

    public boolean equals(create_resource_plan_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRequest()) ? 131071 : 524287);
      if (isSetRequest())
        hashCode = hashCode * 8191 + request.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(create_resource_plan_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRequest(), other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("create_resource_plan_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class create_resource_plan_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_resource_plan_argsStandardScheme getScheme() {
        return new create_resource_plan_argsStandardScheme();
      }
    }

    private static class create_resource_plan_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<create_resource_plan_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, create_resource_plan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new WMCreateResourcePlanRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, create_resource_plan_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class create_resource_plan_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_resource_plan_argsTupleScheme getScheme() {
        return new create_resource_plan_argsTupleScheme();
      }
    }

    private static class create_resource_plan_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<create_resource_plan_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, create_resource_plan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, create_resource_plan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new WMCreateResourcePlanRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_resource_plan_result implements org.apache.thrift.TBase<create_resource_plan_result, create_resource_plan_result._Fields>, java.io.Serializable, Cloneable, Comparable<create_resource_plan_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("create_resource_plan_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new create_resource_plan_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new create_resource_plan_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable WMCreateResourcePlanResponse success; // required
    private @org.apache.thrift.annotation.Nullable AlreadyExistsException o1; // required
    private @org.apache.thrift.annotation.Nullable InvalidObjectException o2; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WMCreateResourcePlanResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AlreadyExistsException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidObjectException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(create_resource_plan_result.class, metaDataMap);
    }

    public create_resource_plan_result() {
    }

    public create_resource_plan_result(
      WMCreateResourcePlanResponse success,
      AlreadyExistsException o1,
      InvalidObjectException o2,
      MetaException o3)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public create_resource_plan_result(create_resource_plan_result other) {
      if (other.isSetSuccess()) {
        this.success = new WMCreateResourcePlanResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new AlreadyExistsException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new InvalidObjectException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
    }

    public create_resource_plan_result deepCopy() {
      return new create_resource_plan_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public WMCreateResourcePlanResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable WMCreateResourcePlanResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public AlreadyExistsException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable AlreadyExistsException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable InvalidObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((WMCreateResourcePlanResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((AlreadyExistsException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((InvalidObjectException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof create_resource_plan_result)
        return this.equals((create_resource_plan_result)that);
      return false;
    }

    public boolean equals(create_resource_plan_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(create_resource_plan_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("create_resource_plan_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class create_resource_plan_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_resource_plan_resultStandardScheme getScheme() {
        return new create_resource_plan_resultStandardScheme();
      }
    }

    private static class create_resource_plan_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<create_resource_plan_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, create_resource_plan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new WMCreateResourcePlanResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new AlreadyExistsException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new InvalidObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, create_resource_plan_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class create_resource_plan_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_resource_plan_resultTupleScheme getScheme() {
        return new create_resource_plan_resultTupleScheme();
      }
    }

    private static class create_resource_plan_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<create_resource_plan_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, create_resource_plan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, create_resource_plan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = new WMCreateResourcePlanResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new AlreadyExistsException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new InvalidObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_resource_plan_args implements org.apache.thrift.TBase<get_resource_plan_args, get_resource_plan_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_resource_plan_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_resource_plan_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_resource_plan_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_resource_plan_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable WMGetResourcePlanRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WMGetResourcePlanRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_resource_plan_args.class, metaDataMap);
    }

    public get_resource_plan_args() {
    }

    public get_resource_plan_args(
      WMGetResourcePlanRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_resource_plan_args(get_resource_plan_args other) {
      if (other.isSetRequest()) {
        this.request = new WMGetResourcePlanRequest(other.request);
      }
    }

    public get_resource_plan_args deepCopy() {
      return new get_resource_plan_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    @org.apache.thrift.annotation.Nullable
    public WMGetResourcePlanRequest getRequest() {
      return this.request;
    }

    public void setRequest(@org.apache.thrift.annotation.Nullable WMGetResourcePlanRequest request) {
      this.request = request;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((WMGetResourcePlanRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_resource_plan_args)
        return this.equals((get_resource_plan_args)that);
      return false;
    }

    public boolean equals(get_resource_plan_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRequest()) ? 131071 : 524287);
      if (isSetRequest())
        hashCode = hashCode * 8191 + request.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_resource_plan_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRequest(), other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_resource_plan_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_resource_plan_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_resource_plan_argsStandardScheme getScheme() {
        return new get_resource_plan_argsStandardScheme();
      }
    }

    private static class get_resource_plan_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_resource_plan_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_resource_plan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new WMGetResourcePlanRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_resource_plan_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_resource_plan_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_resource_plan_argsTupleScheme getScheme() {
        return new get_resource_plan_argsTupleScheme();
      }
    }

    private static class get_resource_plan_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_resource_plan_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_resource_plan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_resource_plan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new WMGetResourcePlanRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_resource_plan_result implements org.apache.thrift.TBase<get_resource_plan_result, get_resource_plan_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_resource_plan_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_resource_plan_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_resource_plan_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_resource_plan_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable WMGetResourcePlanResponse success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WMGetResourcePlanResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_resource_plan_result.class, metaDataMap);
    }

    public get_resource_plan_result() {
    }

    public get_resource_plan_result(
      WMGetResourcePlanResponse success,
      NoSuchObjectException o1,
      MetaException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_resource_plan_result(get_resource_plan_result other) {
      if (other.isSetSuccess()) {
        this.success = new WMGetResourcePlanResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public get_resource_plan_result deepCopy() {
      return new get_resource_plan_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public WMGetResourcePlanResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable WMGetResourcePlanResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((WMGetResourcePlanResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_resource_plan_result)
        return this.equals((get_resource_plan_result)that);
      return false;
    }

    public boolean equals(get_resource_plan_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_resource_plan_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_resource_plan_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_resource_plan_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_resource_plan_resultStandardScheme getScheme() {
        return new get_resource_plan_resultStandardScheme();
      }
    }

    private static class get_resource_plan_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_resource_plan_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_resource_plan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new WMGetResourcePlanResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_resource_plan_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_resource_plan_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_resource_plan_resultTupleScheme getScheme() {
        return new get_resource_plan_resultTupleScheme();
      }
    }

    private static class get_resource_plan_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_resource_plan_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_resource_plan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_resource_plan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = new WMGetResourcePlanResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_active_resource_plan_args implements org.apache.thrift.TBase<get_active_resource_plan_args, get_active_resource_plan_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_active_resource_plan_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_active_resource_plan_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_active_resource_plan_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_active_resource_plan_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable WMGetActiveResourcePlanRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WMGetActiveResourcePlanRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_active_resource_plan_args.class, metaDataMap);
    }

    public get_active_resource_plan_args() {
    }

    public get_active_resource_plan_args(
      WMGetActiveResourcePlanRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_active_resource_plan_args(get_active_resource_plan_args other) {
      if (other.isSetRequest()) {
        this.request = new WMGetActiveResourcePlanRequest(other.request);
      }
    }

    public get_active_resource_plan_args deepCopy() {
      return new get_active_resource_plan_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    @org.apache.thrift.annotation.Nullable
    public WMGetActiveResourcePlanRequest getRequest() {
      return this.request;
    }

    public void setRequest(@org.apache.thrift.annotation.Nullable WMGetActiveResourcePlanRequest request) {
      this.request = request;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((WMGetActiveResourcePlanRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_active_resource_plan_args)
        return this.equals((get_active_resource_plan_args)that);
      return false;
    }

    public boolean equals(get_active_resource_plan_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRequest()) ? 131071 : 524287);
      if (isSetRequest())
        hashCode = hashCode * 8191 + request.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_active_resource_plan_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRequest(), other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_active_resource_plan_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_active_resource_plan_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_active_resource_plan_argsStandardScheme getScheme() {
        return new get_active_resource_plan_argsStandardScheme();
      }
    }

    private static class get_active_resource_plan_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_active_resource_plan_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_active_resource_plan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new WMGetActiveResourcePlanRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_active_resource_plan_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_active_resource_plan_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_active_resource_plan_argsTupleScheme getScheme() {
        return new get_active_resource_plan_argsTupleScheme();
      }
    }

    private static class get_active_resource_plan_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_active_resource_plan_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_active_resource_plan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_active_resource_plan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new WMGetActiveResourcePlanRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_active_resource_plan_result implements org.apache.thrift.TBase<get_active_resource_plan_result, get_active_resource_plan_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_active_resource_plan_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_active_resource_plan_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_active_resource_plan_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_active_resource_plan_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable WMGetActiveResourcePlanResponse success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O2((short)1, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WMGetActiveResourcePlanResponse.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_active_resource_plan_result.class, metaDataMap);
    }

    public get_active_resource_plan_result() {
    }

    public get_active_resource_plan_result(
      WMGetActiveResourcePlanResponse success,
      MetaException o2)
    {
      this();
      this.success = success;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_active_resource_plan_result(get_active_resource_plan_result other) {
      if (other.isSetSuccess()) {
        this.success = new WMGetActiveResourcePlanResponse(other.success);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public get_active_resource_plan_result deepCopy() {
      return new get_active_resource_plan_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public WMGetActiveResourcePlanResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable WMGetActiveResourcePlanResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((WMGetActiveResourcePlanResponse)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_active_resource_plan_result)
        return this.equals((get_active_resource_plan_result)that);
      return false;
    }

    public boolean equals(get_active_resource_plan_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_active_resource_plan_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_active_resource_plan_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_active_resource_plan_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_active_resource_plan_resultStandardScheme getScheme() {
        return new get_active_resource_plan_resultStandardScheme();
      }
    }

    private static class get_active_resource_plan_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_active_resource_plan_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_active_resource_plan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new WMGetActiveResourcePlanResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_active_resource_plan_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_active_resource_plan_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_active_resource_plan_resultTupleScheme getScheme() {
        return new get_active_resource_plan_resultTupleScheme();
      }
    }

    private static class get_active_resource_plan_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_active_resource_plan_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_active_resource_plan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_active_resource_plan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.success = new WMGetActiveResourcePlanResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_all_resource_plans_args implements org.apache.thrift.TBase<get_all_resource_plans_args, get_all_resource_plans_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_all_resource_plans_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_all_resource_plans_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_all_resource_plans_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_all_resource_plans_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable WMGetAllResourcePlanRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WMGetAllResourcePlanRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_all_resource_plans_args.class, metaDataMap);
    }

    public get_all_resource_plans_args() {
    }

    public get_all_resource_plans_args(
      WMGetAllResourcePlanRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_all_resource_plans_args(get_all_resource_plans_args other) {
      if (other.isSetRequest()) {
        this.request = new WMGetAllResourcePlanRequest(other.request);
      }
    }

    public get_all_resource_plans_args deepCopy() {
      return new get_all_resource_plans_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    @org.apache.thrift.annotation.Nullable
    public WMGetAllResourcePlanRequest getRequest() {
      return this.request;
    }

    public void setRequest(@org.apache.thrift.annotation.Nullable WMGetAllResourcePlanRequest request) {
      this.request = request;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((WMGetAllResourcePlanRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_all_resource_plans_args)
        return this.equals((get_all_resource_plans_args)that);
      return false;
    }

    public boolean equals(get_all_resource_plans_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRequest()) ? 131071 : 524287);
      if (isSetRequest())
        hashCode = hashCode * 8191 + request.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_all_resource_plans_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRequest(), other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_all_resource_plans_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_all_resource_plans_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_all_resource_plans_argsStandardScheme getScheme() {
        return new get_all_resource_plans_argsStandardScheme();
      }
    }

    private static class get_all_resource_plans_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_all_resource_plans_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_all_resource_plans_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new WMGetAllResourcePlanRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_all_resource_plans_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_all_resource_plans_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_all_resource_plans_argsTupleScheme getScheme() {
        return new get_all_resource_plans_argsTupleScheme();
      }
    }

    private static class get_all_resource_plans_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_all_resource_plans_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_all_resource_plans_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_all_resource_plans_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new WMGetAllResourcePlanRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_all_resource_plans_result implements org.apache.thrift.TBase<get_all_resource_plans_result, get_all_resource_plans_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_all_resource_plans_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_all_resource_plans_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_all_resource_plans_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_all_resource_plans_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable WMGetAllResourcePlanResponse success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WMGetAllResourcePlanResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_all_resource_plans_result.class, metaDataMap);
    }

    public get_all_resource_plans_result() {
    }

    public get_all_resource_plans_result(
      WMGetAllResourcePlanResponse success,
      MetaException o1)
    {
      this();
      this.success = success;
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_all_resource_plans_result(get_all_resource_plans_result other) {
      if (other.isSetSuccess()) {
        this.success = new WMGetAllResourcePlanResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public get_all_resource_plans_result deepCopy() {
      return new get_all_resource_plans_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public WMGetAllResourcePlanResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable WMGetAllResourcePlanResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((WMGetAllResourcePlanResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_all_resource_plans_result)
        return this.equals((get_all_resource_plans_result)that);
      return false;
    }

    public boolean equals(get_all_resource_plans_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_all_resource_plans_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_all_resource_plans_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_all_resource_plans_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_all_resource_plans_resultStandardScheme getScheme() {
        return new get_all_resource_plans_resultStandardScheme();
      }
    }

    private static class get_all_resource_plans_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_all_resource_plans_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_all_resource_plans_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new WMGetAllResourcePlanResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_all_resource_plans_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_all_resource_plans_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_all_resource_plans_resultTupleScheme getScheme() {
        return new get_all_resource_plans_resultTupleScheme();
      }
    }

    private static class get_all_resource_plans_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_all_resource_plans_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_all_resource_plans_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_all_resource_plans_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.success = new WMGetAllResourcePlanResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_resource_plan_args implements org.apache.thrift.TBase<alter_resource_plan_args, alter_resource_plan_args._Fields>, java.io.Serializable, Cloneable, Comparable<alter_resource_plan_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("alter_resource_plan_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new alter_resource_plan_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new alter_resource_plan_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable WMAlterResourcePlanRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WMAlterResourcePlanRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(alter_resource_plan_args.class, metaDataMap);
    }

    public alter_resource_plan_args() {
    }

    public alter_resource_plan_args(
      WMAlterResourcePlanRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public alter_resource_plan_args(alter_resource_plan_args other) {
      if (other.isSetRequest()) {
        this.request = new WMAlterResourcePlanRequest(other.request);
      }
    }

    public alter_resource_plan_args deepCopy() {
      return new alter_resource_plan_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    @org.apache.thrift.annotation.Nullable
    public WMAlterResourcePlanRequest getRequest() {
      return this.request;
    }

    public void setRequest(@org.apache.thrift.annotation.Nullable WMAlterResourcePlanRequest request) {
      this.request = request;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((WMAlterResourcePlanRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof alter_resource_plan_args)
        return this.equals((alter_resource_plan_args)that);
      return false;
    }

    public boolean equals(alter_resource_plan_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRequest()) ? 131071 : 524287);
      if (isSetRequest())
        hashCode = hashCode * 8191 + request.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(alter_resource_plan_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRequest(), other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("alter_resource_plan_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class alter_resource_plan_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_resource_plan_argsStandardScheme getScheme() {
        return new alter_resource_plan_argsStandardScheme();
      }
    }

    private static class alter_resource_plan_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<alter_resource_plan_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, alter_resource_plan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new WMAlterResourcePlanRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, alter_resource_plan_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class alter_resource_plan_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_resource_plan_argsTupleScheme getScheme() {
        return new alter_resource_plan_argsTupleScheme();
      }
    }

    private static class alter_resource_plan_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<alter_resource_plan_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, alter_resource_plan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, alter_resource_plan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new WMAlterResourcePlanRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_resource_plan_result implements org.apache.thrift.TBase<alter_resource_plan_result, alter_resource_plan_result._Fields>, java.io.Serializable, Cloneable, Comparable<alter_resource_plan_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("alter_resource_plan_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new alter_resource_plan_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new alter_resource_plan_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable WMAlterResourcePlanResponse success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable InvalidOperationException o2; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WMAlterResourcePlanResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidOperationException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(alter_resource_plan_result.class, metaDataMap);
    }

    public alter_resource_plan_result() {
    }

    public alter_resource_plan_result(
      WMAlterResourcePlanResponse success,
      NoSuchObjectException o1,
      InvalidOperationException o2,
      MetaException o3)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public alter_resource_plan_result(alter_resource_plan_result other) {
      if (other.isSetSuccess()) {
        this.success = new WMAlterResourcePlanResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new InvalidOperationException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
    }

    public alter_resource_plan_result deepCopy() {
      return new alter_resource_plan_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public WMAlterResourcePlanResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable WMAlterResourcePlanResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidOperationException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable InvalidOperationException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((WMAlterResourcePlanResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((InvalidOperationException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof alter_resource_plan_result)
        return this.equals((alter_resource_plan_result)that);
      return false;
    }

    public boolean equals(alter_resource_plan_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(alter_resource_plan_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("alter_resource_plan_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class alter_resource_plan_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_resource_plan_resultStandardScheme getScheme() {
        return new alter_resource_plan_resultStandardScheme();
      }
    }

    private static class alter_resource_plan_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<alter_resource_plan_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, alter_resource_plan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new WMAlterResourcePlanResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new InvalidOperationException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, alter_resource_plan_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class alter_resource_plan_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_resource_plan_resultTupleScheme getScheme() {
        return new alter_resource_plan_resultTupleScheme();
      }
    }

    private static class alter_resource_plan_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<alter_resource_plan_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, alter_resource_plan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, alter_resource_plan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = new WMAlterResourcePlanResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new InvalidOperationException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class validate_resource_plan_args implements org.apache.thrift.TBase<validate_resource_plan_args, validate_resource_plan_args._Fields>, java.io.Serializable, Cloneable, Comparable<validate_resource_plan_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("validate_resource_plan_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new validate_resource_plan_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new validate_resource_plan_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable WMValidateResourcePlanRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WMValidateResourcePlanRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(validate_resource_plan_args.class, metaDataMap);
    }

    public validate_resource_plan_args() {
    }

    public validate_resource_plan_args(
      WMValidateResourcePlanRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public validate_resource_plan_args(validate_resource_plan_args other) {
      if (other.isSetRequest()) {
        this.request = new WMValidateResourcePlanRequest(other.request);
      }
    }

    public validate_resource_plan_args deepCopy() {
      return new validate_resource_plan_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    @org.apache.thrift.annotation.Nullable
    public WMValidateResourcePlanRequest getRequest() {
      return this.request;
    }

    public void setRequest(@org.apache.thrift.annotation.Nullable WMValidateResourcePlanRequest request) {
      this.request = request;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((WMValidateResourcePlanRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof validate_resource_plan_args)
        return this.equals((validate_resource_plan_args)that);
      return false;
    }

    public boolean equals(validate_resource_plan_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRequest()) ? 131071 : 524287);
      if (isSetRequest())
        hashCode = hashCode * 8191 + request.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(validate_resource_plan_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRequest(), other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("validate_resource_plan_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class validate_resource_plan_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public validate_resource_plan_argsStandardScheme getScheme() {
        return new validate_resource_plan_argsStandardScheme();
      }
    }

    private static class validate_resource_plan_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<validate_resource_plan_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, validate_resource_plan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new WMValidateResourcePlanRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, validate_resource_plan_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class validate_resource_plan_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public validate_resource_plan_argsTupleScheme getScheme() {
        return new validate_resource_plan_argsTupleScheme();
      }
    }

    private static class validate_resource_plan_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<validate_resource_plan_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, validate_resource_plan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, validate_resource_plan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new WMValidateResourcePlanRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class validate_resource_plan_result implements org.apache.thrift.TBase<validate_resource_plan_result, validate_resource_plan_result._Fields>, java.io.Serializable, Cloneable, Comparable<validate_resource_plan_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("validate_resource_plan_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new validate_resource_plan_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new validate_resource_plan_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable WMValidateResourcePlanResponse success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WMValidateResourcePlanResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(validate_resource_plan_result.class, metaDataMap);
    }

    public validate_resource_plan_result() {
    }

    public validate_resource_plan_result(
      WMValidateResourcePlanResponse success,
      NoSuchObjectException o1,
      MetaException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public validate_resource_plan_result(validate_resource_plan_result other) {
      if (other.isSetSuccess()) {
        this.success = new WMValidateResourcePlanResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public validate_resource_plan_result deepCopy() {
      return new validate_resource_plan_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public WMValidateResourcePlanResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable WMValidateResourcePlanResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((WMValidateResourcePlanResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof validate_resource_plan_result)
        return this.equals((validate_resource_plan_result)that);
      return false;
    }

    public boolean equals(validate_resource_plan_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(validate_resource_plan_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("validate_resource_plan_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class validate_resource_plan_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public validate_resource_plan_resultStandardScheme getScheme() {
        return new validate_resource_plan_resultStandardScheme();
      }
    }

    private static class validate_resource_plan_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<validate_resource_plan_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, validate_resource_plan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new WMValidateResourcePlanResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, validate_resource_plan_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class validate_resource_plan_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public validate_resource_plan_resultTupleScheme getScheme() {
        return new validate_resource_plan_resultTupleScheme();
      }
    }

    private static class validate_resource_plan_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<validate_resource_plan_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, validate_resource_plan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, validate_resource_plan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = new WMValidateResourcePlanResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_resource_plan_args implements org.apache.thrift.TBase<drop_resource_plan_args, drop_resource_plan_args._Fields>, java.io.Serializable, Cloneable, Comparable<drop_resource_plan_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_resource_plan_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_resource_plan_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_resource_plan_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable WMDropResourcePlanRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WMDropResourcePlanRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_resource_plan_args.class, metaDataMap);
    }

    public drop_resource_plan_args() {
    }

    public drop_resource_plan_args(
      WMDropResourcePlanRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_resource_plan_args(drop_resource_plan_args other) {
      if (other.isSetRequest()) {
        this.request = new WMDropResourcePlanRequest(other.request);
      }
    }

    public drop_resource_plan_args deepCopy() {
      return new drop_resource_plan_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    @org.apache.thrift.annotation.Nullable
    public WMDropResourcePlanRequest getRequest() {
      return this.request;
    }

    public void setRequest(@org.apache.thrift.annotation.Nullable WMDropResourcePlanRequest request) {
      this.request = request;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((WMDropResourcePlanRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_resource_plan_args)
        return this.equals((drop_resource_plan_args)that);
      return false;
    }

    public boolean equals(drop_resource_plan_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRequest()) ? 131071 : 524287);
      if (isSetRequest())
        hashCode = hashCode * 8191 + request.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(drop_resource_plan_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRequest(), other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_resource_plan_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_resource_plan_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_resource_plan_argsStandardScheme getScheme() {
        return new drop_resource_plan_argsStandardScheme();
      }
    }

    private static class drop_resource_plan_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_resource_plan_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_resource_plan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new WMDropResourcePlanRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_resource_plan_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_resource_plan_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_resource_plan_argsTupleScheme getScheme() {
        return new drop_resource_plan_argsTupleScheme();
      }
    }

    private static class drop_resource_plan_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_resource_plan_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_resource_plan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_resource_plan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new WMDropResourcePlanRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_resource_plan_result implements org.apache.thrift.TBase<drop_resource_plan_result, drop_resource_plan_result._Fields>, java.io.Serializable, Cloneable, Comparable<drop_resource_plan_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_resource_plan_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_resource_plan_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_resource_plan_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable WMDropResourcePlanResponse success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable InvalidOperationException o2; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WMDropResourcePlanResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidOperationException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_resource_plan_result.class, metaDataMap);
    }

    public drop_resource_plan_result() {
    }

    public drop_resource_plan_result(
      WMDropResourcePlanResponse success,
      NoSuchObjectException o1,
      InvalidOperationException o2,
      MetaException o3)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_resource_plan_result(drop_resource_plan_result other) {
      if (other.isSetSuccess()) {
        this.success = new WMDropResourcePlanResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new InvalidOperationException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
    }

    public drop_resource_plan_result deepCopy() {
      return new drop_resource_plan_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public WMDropResourcePlanResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable WMDropResourcePlanResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidOperationException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable InvalidOperationException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((WMDropResourcePlanResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((InvalidOperationException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_resource_plan_result)
        return this.equals((drop_resource_plan_result)that);
      return false;
    }

    public boolean equals(drop_resource_plan_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(drop_resource_plan_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_resource_plan_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_resource_plan_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_resource_plan_resultStandardScheme getScheme() {
        return new drop_resource_plan_resultStandardScheme();
      }
    }

    private static class drop_resource_plan_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_resource_plan_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_resource_plan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new WMDropResourcePlanResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new InvalidOperationException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_resource_plan_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_resource_plan_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_resource_plan_resultTupleScheme getScheme() {
        return new drop_resource_plan_resultTupleScheme();
      }
    }

    private static class drop_resource_plan_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_resource_plan_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_resource_plan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_resource_plan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = new WMDropResourcePlanResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new InvalidOperationException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_wm_trigger_args implements org.apache.thrift.TBase<create_wm_trigger_args, create_wm_trigger_args._Fields>, java.io.Serializable, Cloneable, Comparable<create_wm_trigger_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("create_wm_trigger_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new create_wm_trigger_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new create_wm_trigger_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable WMCreateTriggerRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WMCreateTriggerRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(create_wm_trigger_args.class, metaDataMap);
    }

    public create_wm_trigger_args() {
    }

    public create_wm_trigger_args(
      WMCreateTriggerRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public create_wm_trigger_args(create_wm_trigger_args other) {
      if (other.isSetRequest()) {
        this.request = new WMCreateTriggerRequest(other.request);
      }
    }

    public create_wm_trigger_args deepCopy() {
      return new create_wm_trigger_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    @org.apache.thrift.annotation.Nullable
    public WMCreateTriggerRequest getRequest() {
      return this.request;
    }

    public void setRequest(@org.apache.thrift.annotation.Nullable WMCreateTriggerRequest request) {
      this.request = request;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((WMCreateTriggerRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof create_wm_trigger_args)
        return this.equals((create_wm_trigger_args)that);
      return false;
    }

    public boolean equals(create_wm_trigger_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRequest()) ? 131071 : 524287);
      if (isSetRequest())
        hashCode = hashCode * 8191 + request.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(create_wm_trigger_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRequest(), other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("create_wm_trigger_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class create_wm_trigger_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_wm_trigger_argsStandardScheme getScheme() {
        return new create_wm_trigger_argsStandardScheme();
      }
    }

    private static class create_wm_trigger_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<create_wm_trigger_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, create_wm_trigger_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new WMCreateTriggerRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, create_wm_trigger_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class create_wm_trigger_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_wm_trigger_argsTupleScheme getScheme() {
        return new create_wm_trigger_argsTupleScheme();
      }
    }

    private static class create_wm_trigger_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<create_wm_trigger_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, create_wm_trigger_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, create_wm_trigger_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new WMCreateTriggerRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_wm_trigger_result implements org.apache.thrift.TBase<create_wm_trigger_result, create_wm_trigger_result._Fields>, java.io.Serializable, Cloneable, Comparable<create_wm_trigger_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("create_wm_trigger_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField O4_FIELD_DESC = new org.apache.thrift.protocol.TField("o4", org.apache.thrift.protocol.TType.STRUCT, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new create_wm_trigger_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new create_wm_trigger_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable WMCreateTriggerResponse success; // required
    private @org.apache.thrift.annotation.Nullable AlreadyExistsException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // required
    private @org.apache.thrift.annotation.Nullable InvalidObjectException o3; // required
    private @org.apache.thrift.annotation.Nullable MetaException o4; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3"),
      O4((short)4, "o4");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          case 4: // O4
            return O4;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WMCreateTriggerResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AlreadyExistsException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidObjectException.class)));
      tmpMap.put(_Fields.O4, new org.apache.thrift.meta_data.FieldMetaData("o4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(create_wm_trigger_result.class, metaDataMap);
    }

    public create_wm_trigger_result() {
    }

    public create_wm_trigger_result(
      WMCreateTriggerResponse success,
      AlreadyExistsException o1,
      NoSuchObjectException o2,
      InvalidObjectException o3,
      MetaException o4)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
      this.o4 = o4;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public create_wm_trigger_result(create_wm_trigger_result other) {
      if (other.isSetSuccess()) {
        this.success = new WMCreateTriggerResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new AlreadyExistsException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchObjectException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new InvalidObjectException(other.o3);
      }
      if (other.isSetO4()) {
        this.o4 = new MetaException(other.o4);
      }
    }

    public create_wm_trigger_result deepCopy() {
      return new create_wm_trigger_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
      this.o4 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public WMCreateTriggerResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable WMCreateTriggerResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public AlreadyExistsException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable AlreadyExistsException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidObjectException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable InvalidObjectException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO4() {
      return this.o4;
    }

    public void setO4(@org.apache.thrift.annotation.Nullable MetaException o4) {
      this.o4 = o4;
    }

    public void unsetO4() {
      this.o4 = null;
    }

    /** Returns true if field o4 is set (has been assigned a value) and false otherwise */
    public boolean isSetO4() {
      return this.o4 != null;
    }

    public void setO4IsSet(boolean value) {
      if (!value) {
        this.o4 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((WMCreateTriggerResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((AlreadyExistsException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchObjectException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((InvalidObjectException)value);
        }
        break;

      case O4:
        if (value == null) {
          unsetO4();
        } else {
          setO4((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      case O4:
        return getO4();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      case O4:
        return isSetO4();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof create_wm_trigger_result)
        return this.equals((create_wm_trigger_result)that);
      return false;
    }

    public boolean equals(create_wm_trigger_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      boolean this_present_o4 = true && this.isSetO4();
      boolean that_present_o4 = true && that.isSetO4();
      if (this_present_o4 || that_present_o4) {
        if (!(this_present_o4 && that_present_o4))
          return false;
        if (!this.o4.equals(that.o4))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      hashCode = hashCode * 8191 + ((isSetO4()) ? 131071 : 524287);
      if (isSetO4())
        hashCode = hashCode * 8191 + o4.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(create_wm_trigger_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO4(), other.isSetO4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o4, other.o4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("create_wm_trigger_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o4:");
      if (this.o4 == null) {
        sb.append("null");
      } else {
        sb.append(this.o4);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class create_wm_trigger_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_wm_trigger_resultStandardScheme getScheme() {
        return new create_wm_trigger_resultStandardScheme();
      }
    }

    private static class create_wm_trigger_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<create_wm_trigger_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, create_wm_trigger_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new WMCreateTriggerResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new AlreadyExistsException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new InvalidObjectException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // O4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o4 = new MetaException();
                struct.o4.read(iprot);
                struct.setO4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, create_wm_trigger_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o4 != null) {
          oprot.writeFieldBegin(O4_FIELD_DESC);
          struct.o4.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class create_wm_trigger_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_wm_trigger_resultTupleScheme getScheme() {
        return new create_wm_trigger_resultTupleScheme();
      }
    }

    private static class create_wm_trigger_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<create_wm_trigger_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, create_wm_trigger_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        if (struct.isSetO4()) {
          optionals.set(4);
        }
        oprot.writeBitSet(optionals, 5);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
        if (struct.isSetO4()) {
          struct.o4.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, create_wm_trigger_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(5);
        if (incoming.get(0)) {
          struct.success = new WMCreateTriggerResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new AlreadyExistsException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new NoSuchObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new InvalidObjectException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.o4 = new MetaException();
          struct.o4.read(iprot);
          struct.setO4IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_wm_trigger_args implements org.apache.thrift.TBase<alter_wm_trigger_args, alter_wm_trigger_args._Fields>, java.io.Serializable, Cloneable, Comparable<alter_wm_trigger_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("alter_wm_trigger_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new alter_wm_trigger_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new alter_wm_trigger_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable WMAlterTriggerRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WMAlterTriggerRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(alter_wm_trigger_args.class, metaDataMap);
    }

    public alter_wm_trigger_args() {
    }

    public alter_wm_trigger_args(
      WMAlterTriggerRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public alter_wm_trigger_args(alter_wm_trigger_args other) {
      if (other.isSetRequest()) {
        this.request = new WMAlterTriggerRequest(other.request);
      }
    }

    public alter_wm_trigger_args deepCopy() {
      return new alter_wm_trigger_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    @org.apache.thrift.annotation.Nullable
    public WMAlterTriggerRequest getRequest() {
      return this.request;
    }

    public void setRequest(@org.apache.thrift.annotation.Nullable WMAlterTriggerRequest request) {
      this.request = request;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((WMAlterTriggerRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof alter_wm_trigger_args)
        return this.equals((alter_wm_trigger_args)that);
      return false;
    }

    public boolean equals(alter_wm_trigger_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRequest()) ? 131071 : 524287);
      if (isSetRequest())
        hashCode = hashCode * 8191 + request.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(alter_wm_trigger_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRequest(), other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("alter_wm_trigger_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class alter_wm_trigger_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_wm_trigger_argsStandardScheme getScheme() {
        return new alter_wm_trigger_argsStandardScheme();
      }
    }

    private static class alter_wm_trigger_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<alter_wm_trigger_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, alter_wm_trigger_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new WMAlterTriggerRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, alter_wm_trigger_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class alter_wm_trigger_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_wm_trigger_argsTupleScheme getScheme() {
        return new alter_wm_trigger_argsTupleScheme();
      }
    }

    private static class alter_wm_trigger_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<alter_wm_trigger_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, alter_wm_trigger_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, alter_wm_trigger_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new WMAlterTriggerRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_wm_trigger_result implements org.apache.thrift.TBase<alter_wm_trigger_result, alter_wm_trigger_result._Fields>, java.io.Serializable, Cloneable, Comparable<alter_wm_trigger_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("alter_wm_trigger_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new alter_wm_trigger_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new alter_wm_trigger_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable WMAlterTriggerResponse success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable InvalidObjectException o2; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WMAlterTriggerResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidObjectException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(alter_wm_trigger_result.class, metaDataMap);
    }

    public alter_wm_trigger_result() {
    }

    public alter_wm_trigger_result(
      WMAlterTriggerResponse success,
      NoSuchObjectException o1,
      InvalidObjectException o2,
      MetaException o3)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public alter_wm_trigger_result(alter_wm_trigger_result other) {
      if (other.isSetSuccess()) {
        this.success = new WMAlterTriggerResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new InvalidObjectException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
    }

    public alter_wm_trigger_result deepCopy() {
      return new alter_wm_trigger_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public WMAlterTriggerResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable WMAlterTriggerResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable InvalidObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((WMAlterTriggerResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((InvalidObjectException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof alter_wm_trigger_result)
        return this.equals((alter_wm_trigger_result)that);
      return false;
    }

    public boolean equals(alter_wm_trigger_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(alter_wm_trigger_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("alter_wm_trigger_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class alter_wm_trigger_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_wm_trigger_resultStandardScheme getScheme() {
        return new alter_wm_trigger_resultStandardScheme();
      }
    }

    private static class alter_wm_trigger_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<alter_wm_trigger_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, alter_wm_trigger_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new WMAlterTriggerResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new InvalidObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, alter_wm_trigger_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class alter_wm_trigger_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_wm_trigger_resultTupleScheme getScheme() {
        return new alter_wm_trigger_resultTupleScheme();
      }
    }

    private static class alter_wm_trigger_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<alter_wm_trigger_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, alter_wm_trigger_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, alter_wm_trigger_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = new WMAlterTriggerResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new InvalidObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_wm_trigger_args implements org.apache.thrift.TBase<drop_wm_trigger_args, drop_wm_trigger_args._Fields>, java.io.Serializable, Cloneable, Comparable<drop_wm_trigger_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_wm_trigger_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_wm_trigger_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_wm_trigger_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable WMDropTriggerRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WMDropTriggerRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_wm_trigger_args.class, metaDataMap);
    }

    public drop_wm_trigger_args() {
    }

    public drop_wm_trigger_args(
      WMDropTriggerRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_wm_trigger_args(drop_wm_trigger_args other) {
      if (other.isSetRequest()) {
        this.request = new WMDropTriggerRequest(other.request);
      }
    }

    public drop_wm_trigger_args deepCopy() {
      return new drop_wm_trigger_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    @org.apache.thrift.annotation.Nullable
    public WMDropTriggerRequest getRequest() {
      return this.request;
    }

    public void setRequest(@org.apache.thrift.annotation.Nullable WMDropTriggerRequest request) {
      this.request = request;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((WMDropTriggerRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_wm_trigger_args)
        return this.equals((drop_wm_trigger_args)that);
      return false;
    }

    public boolean equals(drop_wm_trigger_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRequest()) ? 131071 : 524287);
      if (isSetRequest())
        hashCode = hashCode * 8191 + request.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(drop_wm_trigger_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRequest(), other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_wm_trigger_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_wm_trigger_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_wm_trigger_argsStandardScheme getScheme() {
        return new drop_wm_trigger_argsStandardScheme();
      }
    }

    private static class drop_wm_trigger_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_wm_trigger_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_wm_trigger_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new WMDropTriggerRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_wm_trigger_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_wm_trigger_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_wm_trigger_argsTupleScheme getScheme() {
        return new drop_wm_trigger_argsTupleScheme();
      }
    }

    private static class drop_wm_trigger_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_wm_trigger_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_wm_trigger_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_wm_trigger_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new WMDropTriggerRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_wm_trigger_result implements org.apache.thrift.TBase<drop_wm_trigger_result, drop_wm_trigger_result._Fields>, java.io.Serializable, Cloneable, Comparable<drop_wm_trigger_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_wm_trigger_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_wm_trigger_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_wm_trigger_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable WMDropTriggerResponse success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable InvalidOperationException o2; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WMDropTriggerResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidOperationException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_wm_trigger_result.class, metaDataMap);
    }

    public drop_wm_trigger_result() {
    }

    public drop_wm_trigger_result(
      WMDropTriggerResponse success,
      NoSuchObjectException o1,
      InvalidOperationException o2,
      MetaException o3)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_wm_trigger_result(drop_wm_trigger_result other) {
      if (other.isSetSuccess()) {
        this.success = new WMDropTriggerResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new InvalidOperationException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
    }

    public drop_wm_trigger_result deepCopy() {
      return new drop_wm_trigger_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public WMDropTriggerResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable WMDropTriggerResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidOperationException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable InvalidOperationException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((WMDropTriggerResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((InvalidOperationException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_wm_trigger_result)
        return this.equals((drop_wm_trigger_result)that);
      return false;
    }

    public boolean equals(drop_wm_trigger_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(drop_wm_trigger_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_wm_trigger_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_wm_trigger_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_wm_trigger_resultStandardScheme getScheme() {
        return new drop_wm_trigger_resultStandardScheme();
      }
    }

    private static class drop_wm_trigger_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_wm_trigger_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_wm_trigger_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new WMDropTriggerResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new InvalidOperationException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_wm_trigger_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_wm_trigger_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_wm_trigger_resultTupleScheme getScheme() {
        return new drop_wm_trigger_resultTupleScheme();
      }
    }

    private static class drop_wm_trigger_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_wm_trigger_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_wm_trigger_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_wm_trigger_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = new WMDropTriggerResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new InvalidOperationException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_triggers_for_resourceplan_args implements org.apache.thrift.TBase<get_triggers_for_resourceplan_args, get_triggers_for_resourceplan_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_triggers_for_resourceplan_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_triggers_for_resourceplan_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_triggers_for_resourceplan_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_triggers_for_resourceplan_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable WMGetTriggersForResourePlanRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WMGetTriggersForResourePlanRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_triggers_for_resourceplan_args.class, metaDataMap);
    }

    public get_triggers_for_resourceplan_args() {
    }

    public get_triggers_for_resourceplan_args(
      WMGetTriggersForResourePlanRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_triggers_for_resourceplan_args(get_triggers_for_resourceplan_args other) {
      if (other.isSetRequest()) {
        this.request = new WMGetTriggersForResourePlanRequest(other.request);
      }
    }

    public get_triggers_for_resourceplan_args deepCopy() {
      return new get_triggers_for_resourceplan_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    @org.apache.thrift.annotation.Nullable
    public WMGetTriggersForResourePlanRequest getRequest() {
      return this.request;
    }

    public void setRequest(@org.apache.thrift.annotation.Nullable WMGetTriggersForResourePlanRequest request) {
      this.request = request;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((WMGetTriggersForResourePlanRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_triggers_for_resourceplan_args)
        return this.equals((get_triggers_for_resourceplan_args)that);
      return false;
    }

    public boolean equals(get_triggers_for_resourceplan_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRequest()) ? 131071 : 524287);
      if (isSetRequest())
        hashCode = hashCode * 8191 + request.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_triggers_for_resourceplan_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRequest(), other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_triggers_for_resourceplan_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_triggers_for_resourceplan_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_triggers_for_resourceplan_argsStandardScheme getScheme() {
        return new get_triggers_for_resourceplan_argsStandardScheme();
      }
    }

    private static class get_triggers_for_resourceplan_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_triggers_for_resourceplan_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_triggers_for_resourceplan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new WMGetTriggersForResourePlanRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_triggers_for_resourceplan_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_triggers_for_resourceplan_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_triggers_for_resourceplan_argsTupleScheme getScheme() {
        return new get_triggers_for_resourceplan_argsTupleScheme();
      }
    }

    private static class get_triggers_for_resourceplan_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_triggers_for_resourceplan_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_triggers_for_resourceplan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_triggers_for_resourceplan_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new WMGetTriggersForResourePlanRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_triggers_for_resourceplan_result implements org.apache.thrift.TBase<get_triggers_for_resourceplan_result, get_triggers_for_resourceplan_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_triggers_for_resourceplan_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_triggers_for_resourceplan_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_triggers_for_resourceplan_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_triggers_for_resourceplan_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable WMGetTriggersForResourePlanResponse success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WMGetTriggersForResourePlanResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_triggers_for_resourceplan_result.class, metaDataMap);
    }

    public get_triggers_for_resourceplan_result() {
    }

    public get_triggers_for_resourceplan_result(
      WMGetTriggersForResourePlanResponse success,
      NoSuchObjectException o1,
      MetaException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_triggers_for_resourceplan_result(get_triggers_for_resourceplan_result other) {
      if (other.isSetSuccess()) {
        this.success = new WMGetTriggersForResourePlanResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public get_triggers_for_resourceplan_result deepCopy() {
      return new get_triggers_for_resourceplan_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public WMGetTriggersForResourePlanResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable WMGetTriggersForResourePlanResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((WMGetTriggersForResourePlanResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_triggers_for_resourceplan_result)
        return this.equals((get_triggers_for_resourceplan_result)that);
      return false;
    }

    public boolean equals(get_triggers_for_resourceplan_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_triggers_for_resourceplan_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_triggers_for_resourceplan_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_triggers_for_resourceplan_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_triggers_for_resourceplan_resultStandardScheme getScheme() {
        return new get_triggers_for_resourceplan_resultStandardScheme();
      }
    }

    private static class get_triggers_for_resourceplan_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_triggers_for_resourceplan_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_triggers_for_resourceplan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new WMGetTriggersForResourePlanResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_triggers_for_resourceplan_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_triggers_for_resourceplan_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_triggers_for_resourceplan_resultTupleScheme getScheme() {
        return new get_triggers_for_resourceplan_resultTupleScheme();
      }
    }

    private static class get_triggers_for_resourceplan_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_triggers_for_resourceplan_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_triggers_for_resourceplan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_triggers_for_resourceplan_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = new WMGetTriggersForResourePlanResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_wm_pool_args implements org.apache.thrift.TBase<create_wm_pool_args, create_wm_pool_args._Fields>, java.io.Serializable, Cloneable, Comparable<create_wm_pool_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("create_wm_pool_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new create_wm_pool_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new create_wm_pool_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable WMCreatePoolRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WMCreatePoolRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(create_wm_pool_args.class, metaDataMap);
    }

    public create_wm_pool_args() {
    }

    public create_wm_pool_args(
      WMCreatePoolRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public create_wm_pool_args(create_wm_pool_args other) {
      if (other.isSetRequest()) {
        this.request = new WMCreatePoolRequest(other.request);
      }
    }

    public create_wm_pool_args deepCopy() {
      return new create_wm_pool_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    @org.apache.thrift.annotation.Nullable
    public WMCreatePoolRequest getRequest() {
      return this.request;
    }

    public void setRequest(@org.apache.thrift.annotation.Nullable WMCreatePoolRequest request) {
      this.request = request;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((WMCreatePoolRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof create_wm_pool_args)
        return this.equals((create_wm_pool_args)that);
      return false;
    }

    public boolean equals(create_wm_pool_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRequest()) ? 131071 : 524287);
      if (isSetRequest())
        hashCode = hashCode * 8191 + request.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(create_wm_pool_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRequest(), other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("create_wm_pool_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class create_wm_pool_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_wm_pool_argsStandardScheme getScheme() {
        return new create_wm_pool_argsStandardScheme();
      }
    }

    private static class create_wm_pool_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<create_wm_pool_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, create_wm_pool_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new WMCreatePoolRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, create_wm_pool_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class create_wm_pool_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_wm_pool_argsTupleScheme getScheme() {
        return new create_wm_pool_argsTupleScheme();
      }
    }

    private static class create_wm_pool_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<create_wm_pool_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, create_wm_pool_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, create_wm_pool_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new WMCreatePoolRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_wm_pool_result implements org.apache.thrift.TBase<create_wm_pool_result, create_wm_pool_result._Fields>, java.io.Serializable, Cloneable, Comparable<create_wm_pool_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("create_wm_pool_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField O4_FIELD_DESC = new org.apache.thrift.protocol.TField("o4", org.apache.thrift.protocol.TType.STRUCT, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new create_wm_pool_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new create_wm_pool_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable WMCreatePoolResponse success; // required
    private @org.apache.thrift.annotation.Nullable AlreadyExistsException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // required
    private @org.apache.thrift.annotation.Nullable InvalidObjectException o3; // required
    private @org.apache.thrift.annotation.Nullable MetaException o4; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3"),
      O4((short)4, "o4");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          case 4: // O4
            return O4;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WMCreatePoolResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AlreadyExistsException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidObjectException.class)));
      tmpMap.put(_Fields.O4, new org.apache.thrift.meta_data.FieldMetaData("o4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(create_wm_pool_result.class, metaDataMap);
    }

    public create_wm_pool_result() {
    }

    public create_wm_pool_result(
      WMCreatePoolResponse success,
      AlreadyExistsException o1,
      NoSuchObjectException o2,
      InvalidObjectException o3,
      MetaException o4)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
      this.o4 = o4;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public create_wm_pool_result(create_wm_pool_result other) {
      if (other.isSetSuccess()) {
        this.success = new WMCreatePoolResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new AlreadyExistsException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchObjectException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new InvalidObjectException(other.o3);
      }
      if (other.isSetO4()) {
        this.o4 = new MetaException(other.o4);
      }
    }

    public create_wm_pool_result deepCopy() {
      return new create_wm_pool_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
      this.o4 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public WMCreatePoolResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable WMCreatePoolResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public AlreadyExistsException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable AlreadyExistsException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidObjectException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable InvalidObjectException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO4() {
      return this.o4;
    }

    public void setO4(@org.apache.thrift.annotation.Nullable MetaException o4) {
      this.o4 = o4;
    }

    public void unsetO4() {
      this.o4 = null;
    }

    /** Returns true if field o4 is set (has been assigned a value) and false otherwise */
    public boolean isSetO4() {
      return this.o4 != null;
    }

    public void setO4IsSet(boolean value) {
      if (!value) {
        this.o4 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((WMCreatePoolResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((AlreadyExistsException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchObjectException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((InvalidObjectException)value);
        }
        break;

      case O4:
        if (value == null) {
          unsetO4();
        } else {
          setO4((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      case O4:
        return getO4();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      case O4:
        return isSetO4();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof create_wm_pool_result)
        return this.equals((create_wm_pool_result)that);
      return false;
    }

    public boolean equals(create_wm_pool_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      boolean this_present_o4 = true && this.isSetO4();
      boolean that_present_o4 = true && that.isSetO4();
      if (this_present_o4 || that_present_o4) {
        if (!(this_present_o4 && that_present_o4))
          return false;
        if (!this.o4.equals(that.o4))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      hashCode = hashCode * 8191 + ((isSetO4()) ? 131071 : 524287);
      if (isSetO4())
        hashCode = hashCode * 8191 + o4.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(create_wm_pool_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO4(), other.isSetO4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o4, other.o4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("create_wm_pool_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o4:");
      if (this.o4 == null) {
        sb.append("null");
      } else {
        sb.append(this.o4);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class create_wm_pool_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_wm_pool_resultStandardScheme getScheme() {
        return new create_wm_pool_resultStandardScheme();
      }
    }

    private static class create_wm_pool_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<create_wm_pool_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, create_wm_pool_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new WMCreatePoolResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new AlreadyExistsException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new InvalidObjectException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // O4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o4 = new MetaException();
                struct.o4.read(iprot);
                struct.setO4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, create_wm_pool_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o4 != null) {
          oprot.writeFieldBegin(O4_FIELD_DESC);
          struct.o4.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class create_wm_pool_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_wm_pool_resultTupleScheme getScheme() {
        return new create_wm_pool_resultTupleScheme();
      }
    }

    private static class create_wm_pool_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<create_wm_pool_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, create_wm_pool_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        if (struct.isSetO4()) {
          optionals.set(4);
        }
        oprot.writeBitSet(optionals, 5);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
        if (struct.isSetO4()) {
          struct.o4.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, create_wm_pool_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(5);
        if (incoming.get(0)) {
          struct.success = new WMCreatePoolResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new AlreadyExistsException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new NoSuchObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new InvalidObjectException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.o4 = new MetaException();
          struct.o4.read(iprot);
          struct.setO4IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_wm_pool_args implements org.apache.thrift.TBase<alter_wm_pool_args, alter_wm_pool_args._Fields>, java.io.Serializable, Cloneable, Comparable<alter_wm_pool_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("alter_wm_pool_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new alter_wm_pool_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new alter_wm_pool_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable WMAlterPoolRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WMAlterPoolRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(alter_wm_pool_args.class, metaDataMap);
    }

    public alter_wm_pool_args() {
    }

    public alter_wm_pool_args(
      WMAlterPoolRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public alter_wm_pool_args(alter_wm_pool_args other) {
      if (other.isSetRequest()) {
        this.request = new WMAlterPoolRequest(other.request);
      }
    }

    public alter_wm_pool_args deepCopy() {
      return new alter_wm_pool_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    @org.apache.thrift.annotation.Nullable
    public WMAlterPoolRequest getRequest() {
      return this.request;
    }

    public void setRequest(@org.apache.thrift.annotation.Nullable WMAlterPoolRequest request) {
      this.request = request;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((WMAlterPoolRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof alter_wm_pool_args)
        return this.equals((alter_wm_pool_args)that);
      return false;
    }

    public boolean equals(alter_wm_pool_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRequest()) ? 131071 : 524287);
      if (isSetRequest())
        hashCode = hashCode * 8191 + request.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(alter_wm_pool_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRequest(), other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("alter_wm_pool_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class alter_wm_pool_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_wm_pool_argsStandardScheme getScheme() {
        return new alter_wm_pool_argsStandardScheme();
      }
    }

    private static class alter_wm_pool_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<alter_wm_pool_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, alter_wm_pool_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new WMAlterPoolRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, alter_wm_pool_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class alter_wm_pool_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_wm_pool_argsTupleScheme getScheme() {
        return new alter_wm_pool_argsTupleScheme();
      }
    }

    private static class alter_wm_pool_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<alter_wm_pool_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, alter_wm_pool_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, alter_wm_pool_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new WMAlterPoolRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_wm_pool_result implements org.apache.thrift.TBase<alter_wm_pool_result, alter_wm_pool_result._Fields>, java.io.Serializable, Cloneable, Comparable<alter_wm_pool_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("alter_wm_pool_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField O4_FIELD_DESC = new org.apache.thrift.protocol.TField("o4", org.apache.thrift.protocol.TType.STRUCT, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new alter_wm_pool_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new alter_wm_pool_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable WMAlterPoolResponse success; // required
    private @org.apache.thrift.annotation.Nullable AlreadyExistsException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // required
    private @org.apache.thrift.annotation.Nullable InvalidObjectException o3; // required
    private @org.apache.thrift.annotation.Nullable MetaException o4; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3"),
      O4((short)4, "o4");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          case 4: // O4
            return O4;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WMAlterPoolResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AlreadyExistsException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidObjectException.class)));
      tmpMap.put(_Fields.O4, new org.apache.thrift.meta_data.FieldMetaData("o4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(alter_wm_pool_result.class, metaDataMap);
    }

    public alter_wm_pool_result() {
    }

    public alter_wm_pool_result(
      WMAlterPoolResponse success,
      AlreadyExistsException o1,
      NoSuchObjectException o2,
      InvalidObjectException o3,
      MetaException o4)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
      this.o4 = o4;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public alter_wm_pool_result(alter_wm_pool_result other) {
      if (other.isSetSuccess()) {
        this.success = new WMAlterPoolResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new AlreadyExistsException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchObjectException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new InvalidObjectException(other.o3);
      }
      if (other.isSetO4()) {
        this.o4 = new MetaException(other.o4);
      }
    }

    public alter_wm_pool_result deepCopy() {
      return new alter_wm_pool_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
      this.o4 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public WMAlterPoolResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable WMAlterPoolResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public AlreadyExistsException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable AlreadyExistsException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidObjectException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable InvalidObjectException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO4() {
      return this.o4;
    }

    public void setO4(@org.apache.thrift.annotation.Nullable MetaException o4) {
      this.o4 = o4;
    }

    public void unsetO4() {
      this.o4 = null;
    }

    /** Returns true if field o4 is set (has been assigned a value) and false otherwise */
    public boolean isSetO4() {
      return this.o4 != null;
    }

    public void setO4IsSet(boolean value) {
      if (!value) {
        this.o4 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((WMAlterPoolResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((AlreadyExistsException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchObjectException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((InvalidObjectException)value);
        }
        break;

      case O4:
        if (value == null) {
          unsetO4();
        } else {
          setO4((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      case O4:
        return getO4();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      case O4:
        return isSetO4();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof alter_wm_pool_result)
        return this.equals((alter_wm_pool_result)that);
      return false;
    }

    public boolean equals(alter_wm_pool_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      boolean this_present_o4 = true && this.isSetO4();
      boolean that_present_o4 = true && that.isSetO4();
      if (this_present_o4 || that_present_o4) {
        if (!(this_present_o4 && that_present_o4))
          return false;
        if (!this.o4.equals(that.o4))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      hashCode = hashCode * 8191 + ((isSetO4()) ? 131071 : 524287);
      if (isSetO4())
        hashCode = hashCode * 8191 + o4.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(alter_wm_pool_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO4(), other.isSetO4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o4, other.o4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("alter_wm_pool_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o4:");
      if (this.o4 == null) {
        sb.append("null");
      } else {
        sb.append(this.o4);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class alter_wm_pool_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_wm_pool_resultStandardScheme getScheme() {
        return new alter_wm_pool_resultStandardScheme();
      }
    }

    private static class alter_wm_pool_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<alter_wm_pool_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, alter_wm_pool_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new WMAlterPoolResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new AlreadyExistsException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new InvalidObjectException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // O4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o4 = new MetaException();
                struct.o4.read(iprot);
                struct.setO4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, alter_wm_pool_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o4 != null) {
          oprot.writeFieldBegin(O4_FIELD_DESC);
          struct.o4.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class alter_wm_pool_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_wm_pool_resultTupleScheme getScheme() {
        return new alter_wm_pool_resultTupleScheme();
      }
    }

    private static class alter_wm_pool_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<alter_wm_pool_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, alter_wm_pool_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        if (struct.isSetO4()) {
          optionals.set(4);
        }
        oprot.writeBitSet(optionals, 5);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
        if (struct.isSetO4()) {
          struct.o4.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, alter_wm_pool_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(5);
        if (incoming.get(0)) {
          struct.success = new WMAlterPoolResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new AlreadyExistsException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new NoSuchObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new InvalidObjectException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.o4 = new MetaException();
          struct.o4.read(iprot);
          struct.setO4IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_wm_pool_args implements org.apache.thrift.TBase<drop_wm_pool_args, drop_wm_pool_args._Fields>, java.io.Serializable, Cloneable, Comparable<drop_wm_pool_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_wm_pool_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_wm_pool_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_wm_pool_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable WMDropPoolRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WMDropPoolRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_wm_pool_args.class, metaDataMap);
    }

    public drop_wm_pool_args() {
    }

    public drop_wm_pool_args(
      WMDropPoolRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_wm_pool_args(drop_wm_pool_args other) {
      if (other.isSetRequest()) {
        this.request = new WMDropPoolRequest(other.request);
      }
    }

    public drop_wm_pool_args deepCopy() {
      return new drop_wm_pool_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    @org.apache.thrift.annotation.Nullable
    public WMDropPoolRequest getRequest() {
      return this.request;
    }

    public void setRequest(@org.apache.thrift.annotation.Nullable WMDropPoolRequest request) {
      this.request = request;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((WMDropPoolRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_wm_pool_args)
        return this.equals((drop_wm_pool_args)that);
      return false;
    }

    public boolean equals(drop_wm_pool_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRequest()) ? 131071 : 524287);
      if (isSetRequest())
        hashCode = hashCode * 8191 + request.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(drop_wm_pool_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRequest(), other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_wm_pool_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_wm_pool_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_wm_pool_argsStandardScheme getScheme() {
        return new drop_wm_pool_argsStandardScheme();
      }
    }

    private static class drop_wm_pool_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_wm_pool_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_wm_pool_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new WMDropPoolRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_wm_pool_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_wm_pool_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_wm_pool_argsTupleScheme getScheme() {
        return new drop_wm_pool_argsTupleScheme();
      }
    }

    private static class drop_wm_pool_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_wm_pool_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_wm_pool_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_wm_pool_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new WMDropPoolRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_wm_pool_result implements org.apache.thrift.TBase<drop_wm_pool_result, drop_wm_pool_result._Fields>, java.io.Serializable, Cloneable, Comparable<drop_wm_pool_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_wm_pool_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_wm_pool_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_wm_pool_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable WMDropPoolResponse success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable InvalidOperationException o2; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WMDropPoolResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidOperationException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_wm_pool_result.class, metaDataMap);
    }

    public drop_wm_pool_result() {
    }

    public drop_wm_pool_result(
      WMDropPoolResponse success,
      NoSuchObjectException o1,
      InvalidOperationException o2,
      MetaException o3)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_wm_pool_result(drop_wm_pool_result other) {
      if (other.isSetSuccess()) {
        this.success = new WMDropPoolResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new InvalidOperationException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
    }

    public drop_wm_pool_result deepCopy() {
      return new drop_wm_pool_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public WMDropPoolResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable WMDropPoolResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidOperationException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable InvalidOperationException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((WMDropPoolResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((InvalidOperationException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_wm_pool_result)
        return this.equals((drop_wm_pool_result)that);
      return false;
    }

    public boolean equals(drop_wm_pool_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(drop_wm_pool_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_wm_pool_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_wm_pool_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_wm_pool_resultStandardScheme getScheme() {
        return new drop_wm_pool_resultStandardScheme();
      }
    }

    private static class drop_wm_pool_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_wm_pool_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_wm_pool_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new WMDropPoolResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new InvalidOperationException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_wm_pool_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_wm_pool_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_wm_pool_resultTupleScheme getScheme() {
        return new drop_wm_pool_resultTupleScheme();
      }
    }

    private static class drop_wm_pool_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_wm_pool_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_wm_pool_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_wm_pool_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = new WMDropPoolResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new InvalidOperationException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_or_update_wm_mapping_args implements org.apache.thrift.TBase<create_or_update_wm_mapping_args, create_or_update_wm_mapping_args._Fields>, java.io.Serializable, Cloneable, Comparable<create_or_update_wm_mapping_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("create_or_update_wm_mapping_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new create_or_update_wm_mapping_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new create_or_update_wm_mapping_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable WMCreateOrUpdateMappingRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WMCreateOrUpdateMappingRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(create_or_update_wm_mapping_args.class, metaDataMap);
    }

    public create_or_update_wm_mapping_args() {
    }

    public create_or_update_wm_mapping_args(
      WMCreateOrUpdateMappingRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public create_or_update_wm_mapping_args(create_or_update_wm_mapping_args other) {
      if (other.isSetRequest()) {
        this.request = new WMCreateOrUpdateMappingRequest(other.request);
      }
    }

    public create_or_update_wm_mapping_args deepCopy() {
      return new create_or_update_wm_mapping_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    @org.apache.thrift.annotation.Nullable
    public WMCreateOrUpdateMappingRequest getRequest() {
      return this.request;
    }

    public void setRequest(@org.apache.thrift.annotation.Nullable WMCreateOrUpdateMappingRequest request) {
      this.request = request;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((WMCreateOrUpdateMappingRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof create_or_update_wm_mapping_args)
        return this.equals((create_or_update_wm_mapping_args)that);
      return false;
    }

    public boolean equals(create_or_update_wm_mapping_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRequest()) ? 131071 : 524287);
      if (isSetRequest())
        hashCode = hashCode * 8191 + request.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(create_or_update_wm_mapping_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRequest(), other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("create_or_update_wm_mapping_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class create_or_update_wm_mapping_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_or_update_wm_mapping_argsStandardScheme getScheme() {
        return new create_or_update_wm_mapping_argsStandardScheme();
      }
    }

    private static class create_or_update_wm_mapping_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<create_or_update_wm_mapping_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, create_or_update_wm_mapping_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new WMCreateOrUpdateMappingRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, create_or_update_wm_mapping_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class create_or_update_wm_mapping_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_or_update_wm_mapping_argsTupleScheme getScheme() {
        return new create_or_update_wm_mapping_argsTupleScheme();
      }
    }

    private static class create_or_update_wm_mapping_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<create_or_update_wm_mapping_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, create_or_update_wm_mapping_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, create_or_update_wm_mapping_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new WMCreateOrUpdateMappingRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_or_update_wm_mapping_result implements org.apache.thrift.TBase<create_or_update_wm_mapping_result, create_or_update_wm_mapping_result._Fields>, java.io.Serializable, Cloneable, Comparable<create_or_update_wm_mapping_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("create_or_update_wm_mapping_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField O4_FIELD_DESC = new org.apache.thrift.protocol.TField("o4", org.apache.thrift.protocol.TType.STRUCT, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new create_or_update_wm_mapping_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new create_or_update_wm_mapping_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable WMCreateOrUpdateMappingResponse success; // required
    private @org.apache.thrift.annotation.Nullable AlreadyExistsException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // required
    private @org.apache.thrift.annotation.Nullable InvalidObjectException o3; // required
    private @org.apache.thrift.annotation.Nullable MetaException o4; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3"),
      O4((short)4, "o4");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          case 4: // O4
            return O4;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WMCreateOrUpdateMappingResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AlreadyExistsException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidObjectException.class)));
      tmpMap.put(_Fields.O4, new org.apache.thrift.meta_data.FieldMetaData("o4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(create_or_update_wm_mapping_result.class, metaDataMap);
    }

    public create_or_update_wm_mapping_result() {
    }

    public create_or_update_wm_mapping_result(
      WMCreateOrUpdateMappingResponse success,
      AlreadyExistsException o1,
      NoSuchObjectException o2,
      InvalidObjectException o3,
      MetaException o4)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
      this.o4 = o4;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public create_or_update_wm_mapping_result(create_or_update_wm_mapping_result other) {
      if (other.isSetSuccess()) {
        this.success = new WMCreateOrUpdateMappingResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new AlreadyExistsException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchObjectException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new InvalidObjectException(other.o3);
      }
      if (other.isSetO4()) {
        this.o4 = new MetaException(other.o4);
      }
    }

    public create_or_update_wm_mapping_result deepCopy() {
      return new create_or_update_wm_mapping_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
      this.o4 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public WMCreateOrUpdateMappingResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable WMCreateOrUpdateMappingResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public AlreadyExistsException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable AlreadyExistsException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidObjectException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable InvalidObjectException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO4() {
      return this.o4;
    }

    public void setO4(@org.apache.thrift.annotation.Nullable MetaException o4) {
      this.o4 = o4;
    }

    public void unsetO4() {
      this.o4 = null;
    }

    /** Returns true if field o4 is set (has been assigned a value) and false otherwise */
    public boolean isSetO4() {
      return this.o4 != null;
    }

    public void setO4IsSet(boolean value) {
      if (!value) {
        this.o4 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((WMCreateOrUpdateMappingResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((AlreadyExistsException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchObjectException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((InvalidObjectException)value);
        }
        break;

      case O4:
        if (value == null) {
          unsetO4();
        } else {
          setO4((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      case O4:
        return getO4();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      case O4:
        return isSetO4();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof create_or_update_wm_mapping_result)
        return this.equals((create_or_update_wm_mapping_result)that);
      return false;
    }

    public boolean equals(create_or_update_wm_mapping_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      boolean this_present_o4 = true && this.isSetO4();
      boolean that_present_o4 = true && that.isSetO4();
      if (this_present_o4 || that_present_o4) {
        if (!(this_present_o4 && that_present_o4))
          return false;
        if (!this.o4.equals(that.o4))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      hashCode = hashCode * 8191 + ((isSetO4()) ? 131071 : 524287);
      if (isSetO4())
        hashCode = hashCode * 8191 + o4.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(create_or_update_wm_mapping_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO4(), other.isSetO4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o4, other.o4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("create_or_update_wm_mapping_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o4:");
      if (this.o4 == null) {
        sb.append("null");
      } else {
        sb.append(this.o4);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class create_or_update_wm_mapping_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_or_update_wm_mapping_resultStandardScheme getScheme() {
        return new create_or_update_wm_mapping_resultStandardScheme();
      }
    }

    private static class create_or_update_wm_mapping_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<create_or_update_wm_mapping_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, create_or_update_wm_mapping_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new WMCreateOrUpdateMappingResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new AlreadyExistsException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new InvalidObjectException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // O4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o4 = new MetaException();
                struct.o4.read(iprot);
                struct.setO4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, create_or_update_wm_mapping_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o4 != null) {
          oprot.writeFieldBegin(O4_FIELD_DESC);
          struct.o4.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class create_or_update_wm_mapping_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_or_update_wm_mapping_resultTupleScheme getScheme() {
        return new create_or_update_wm_mapping_resultTupleScheme();
      }
    }

    private static class create_or_update_wm_mapping_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<create_or_update_wm_mapping_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, create_or_update_wm_mapping_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        if (struct.isSetO4()) {
          optionals.set(4);
        }
        oprot.writeBitSet(optionals, 5);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
        if (struct.isSetO4()) {
          struct.o4.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, create_or_update_wm_mapping_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(5);
        if (incoming.get(0)) {
          struct.success = new WMCreateOrUpdateMappingResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new AlreadyExistsException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new NoSuchObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new InvalidObjectException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.o4 = new MetaException();
          struct.o4.read(iprot);
          struct.setO4IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_wm_mapping_args implements org.apache.thrift.TBase<drop_wm_mapping_args, drop_wm_mapping_args._Fields>, java.io.Serializable, Cloneable, Comparable<drop_wm_mapping_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_wm_mapping_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_wm_mapping_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_wm_mapping_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable WMDropMappingRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WMDropMappingRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_wm_mapping_args.class, metaDataMap);
    }

    public drop_wm_mapping_args() {
    }

    public drop_wm_mapping_args(
      WMDropMappingRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_wm_mapping_args(drop_wm_mapping_args other) {
      if (other.isSetRequest()) {
        this.request = new WMDropMappingRequest(other.request);
      }
    }

    public drop_wm_mapping_args deepCopy() {
      return new drop_wm_mapping_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    @org.apache.thrift.annotation.Nullable
    public WMDropMappingRequest getRequest() {
      return this.request;
    }

    public void setRequest(@org.apache.thrift.annotation.Nullable WMDropMappingRequest request) {
      this.request = request;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((WMDropMappingRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_wm_mapping_args)
        return this.equals((drop_wm_mapping_args)that);
      return false;
    }

    public boolean equals(drop_wm_mapping_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRequest()) ? 131071 : 524287);
      if (isSetRequest())
        hashCode = hashCode * 8191 + request.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(drop_wm_mapping_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRequest(), other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_wm_mapping_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_wm_mapping_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_wm_mapping_argsStandardScheme getScheme() {
        return new drop_wm_mapping_argsStandardScheme();
      }
    }

    private static class drop_wm_mapping_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_wm_mapping_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_wm_mapping_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new WMDropMappingRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_wm_mapping_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_wm_mapping_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_wm_mapping_argsTupleScheme getScheme() {
        return new drop_wm_mapping_argsTupleScheme();
      }
    }

    private static class drop_wm_mapping_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_wm_mapping_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_wm_mapping_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_wm_mapping_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new WMDropMappingRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_wm_mapping_result implements org.apache.thrift.TBase<drop_wm_mapping_result, drop_wm_mapping_result._Fields>, java.io.Serializable, Cloneable, Comparable<drop_wm_mapping_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_wm_mapping_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_wm_mapping_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_wm_mapping_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable WMDropMappingResponse success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable InvalidOperationException o2; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WMDropMappingResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidOperationException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_wm_mapping_result.class, metaDataMap);
    }

    public drop_wm_mapping_result() {
    }

    public drop_wm_mapping_result(
      WMDropMappingResponse success,
      NoSuchObjectException o1,
      InvalidOperationException o2,
      MetaException o3)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_wm_mapping_result(drop_wm_mapping_result other) {
      if (other.isSetSuccess()) {
        this.success = new WMDropMappingResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new InvalidOperationException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
    }

    public drop_wm_mapping_result deepCopy() {
      return new drop_wm_mapping_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public WMDropMappingResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable WMDropMappingResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidOperationException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable InvalidOperationException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((WMDropMappingResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((InvalidOperationException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_wm_mapping_result)
        return this.equals((drop_wm_mapping_result)that);
      return false;
    }

    public boolean equals(drop_wm_mapping_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(drop_wm_mapping_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_wm_mapping_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_wm_mapping_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_wm_mapping_resultStandardScheme getScheme() {
        return new drop_wm_mapping_resultStandardScheme();
      }
    }

    private static class drop_wm_mapping_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_wm_mapping_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_wm_mapping_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new WMDropMappingResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new InvalidOperationException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_wm_mapping_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_wm_mapping_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_wm_mapping_resultTupleScheme getScheme() {
        return new drop_wm_mapping_resultTupleScheme();
      }
    }

    private static class drop_wm_mapping_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_wm_mapping_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_wm_mapping_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        oprot.writeBitSet(optionals, 4);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_wm_mapping_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(4);
        if (incoming.get(0)) {
          struct.success = new WMDropMappingResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new InvalidOperationException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_or_drop_wm_trigger_to_pool_mapping_args implements org.apache.thrift.TBase<create_or_drop_wm_trigger_to_pool_mapping_args, create_or_drop_wm_trigger_to_pool_mapping_args._Fields>, java.io.Serializable, Cloneable, Comparable<create_or_drop_wm_trigger_to_pool_mapping_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("create_or_drop_wm_trigger_to_pool_mapping_args");

    private static final org.apache.thrift.protocol.TField REQUEST_FIELD_DESC = new org.apache.thrift.protocol.TField("request", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new create_or_drop_wm_trigger_to_pool_mapping_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new create_or_drop_wm_trigger_to_pool_mapping_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable WMCreateOrDropTriggerToPoolMappingRequest request; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      REQUEST((short)1, "request");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // REQUEST
            return REQUEST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.REQUEST, new org.apache.thrift.meta_data.FieldMetaData("request", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WMCreateOrDropTriggerToPoolMappingRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(create_or_drop_wm_trigger_to_pool_mapping_args.class, metaDataMap);
    }

    public create_or_drop_wm_trigger_to_pool_mapping_args() {
    }

    public create_or_drop_wm_trigger_to_pool_mapping_args(
      WMCreateOrDropTriggerToPoolMappingRequest request)
    {
      this();
      this.request = request;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public create_or_drop_wm_trigger_to_pool_mapping_args(create_or_drop_wm_trigger_to_pool_mapping_args other) {
      if (other.isSetRequest()) {
        this.request = new WMCreateOrDropTriggerToPoolMappingRequest(other.request);
      }
    }

    public create_or_drop_wm_trigger_to_pool_mapping_args deepCopy() {
      return new create_or_drop_wm_trigger_to_pool_mapping_args(this);
    }

    @Override
    public void clear() {
      this.request = null;
    }

    @org.apache.thrift.annotation.Nullable
    public WMCreateOrDropTriggerToPoolMappingRequest getRequest() {
      return this.request;
    }

    public void setRequest(@org.apache.thrift.annotation.Nullable WMCreateOrDropTriggerToPoolMappingRequest request) {
      this.request = request;
    }

    public void unsetRequest() {
      this.request = null;
    }

    /** Returns true if field request is set (has been assigned a value) and false otherwise */
    public boolean isSetRequest() {
      return this.request != null;
    }

    public void setRequestIsSet(boolean value) {
      if (!value) {
        this.request = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case REQUEST:
        if (value == null) {
          unsetRequest();
        } else {
          setRequest((WMCreateOrDropTriggerToPoolMappingRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case REQUEST:
        return getRequest();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case REQUEST:
        return isSetRequest();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof create_or_drop_wm_trigger_to_pool_mapping_args)
        return this.equals((create_or_drop_wm_trigger_to_pool_mapping_args)that);
      return false;
    }

    public boolean equals(create_or_drop_wm_trigger_to_pool_mapping_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_request = true && this.isSetRequest();
      boolean that_present_request = true && that.isSetRequest();
      if (this_present_request || that_present_request) {
        if (!(this_present_request && that_present_request))
          return false;
        if (!this.request.equals(that.request))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRequest()) ? 131071 : 524287);
      if (isSetRequest())
        hashCode = hashCode * 8191 + request.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(create_or_drop_wm_trigger_to_pool_mapping_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRequest(), other.isSetRequest());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRequest()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request, other.request);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("create_or_drop_wm_trigger_to_pool_mapping_args(");
      boolean first = true;

      sb.append("request:");
      if (this.request == null) {
        sb.append("null");
      } else {
        sb.append(this.request);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (request != null) {
        request.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class create_or_drop_wm_trigger_to_pool_mapping_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_or_drop_wm_trigger_to_pool_mapping_argsStandardScheme getScheme() {
        return new create_or_drop_wm_trigger_to_pool_mapping_argsStandardScheme();
      }
    }

    private static class create_or_drop_wm_trigger_to_pool_mapping_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<create_or_drop_wm_trigger_to_pool_mapping_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, create_or_drop_wm_trigger_to_pool_mapping_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // REQUEST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.request = new WMCreateOrDropTriggerToPoolMappingRequest();
                struct.request.read(iprot);
                struct.setRequestIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, create_or_drop_wm_trigger_to_pool_mapping_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.request != null) {
          oprot.writeFieldBegin(REQUEST_FIELD_DESC);
          struct.request.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class create_or_drop_wm_trigger_to_pool_mapping_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_or_drop_wm_trigger_to_pool_mapping_argsTupleScheme getScheme() {
        return new create_or_drop_wm_trigger_to_pool_mapping_argsTupleScheme();
      }
    }

    private static class create_or_drop_wm_trigger_to_pool_mapping_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<create_or_drop_wm_trigger_to_pool_mapping_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, create_or_drop_wm_trigger_to_pool_mapping_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRequest()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRequest()) {
          struct.request.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, create_or_drop_wm_trigger_to_pool_mapping_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.request = new WMCreateOrDropTriggerToPoolMappingRequest();
          struct.request.read(iprot);
          struct.setRequestIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_or_drop_wm_trigger_to_pool_mapping_result implements org.apache.thrift.TBase<create_or_drop_wm_trigger_to_pool_mapping_result, create_or_drop_wm_trigger_to_pool_mapping_result._Fields>, java.io.Serializable, Cloneable, Comparable<create_or_drop_wm_trigger_to_pool_mapping_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("create_or_drop_wm_trigger_to_pool_mapping_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);
    private static final org.apache.thrift.protocol.TField O4_FIELD_DESC = new org.apache.thrift.protocol.TField("o4", org.apache.thrift.protocol.TType.STRUCT, (short)4);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new create_or_drop_wm_trigger_to_pool_mapping_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new create_or_drop_wm_trigger_to_pool_mapping_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable WMCreateOrDropTriggerToPoolMappingResponse success; // required
    private @org.apache.thrift.annotation.Nullable AlreadyExistsException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // required
    private @org.apache.thrift.annotation.Nullable InvalidObjectException o3; // required
    private @org.apache.thrift.annotation.Nullable MetaException o4; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3"),
      O4((short)4, "o4");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          case 4: // O4
            return O4;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WMCreateOrDropTriggerToPoolMappingResponse.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AlreadyExistsException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidObjectException.class)));
      tmpMap.put(_Fields.O4, new org.apache.thrift.meta_data.FieldMetaData("o4", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(create_or_drop_wm_trigger_to_pool_mapping_result.class, metaDataMap);
    }

    public create_or_drop_wm_trigger_to_pool_mapping_result() {
    }

    public create_or_drop_wm_trigger_to_pool_mapping_result(
      WMCreateOrDropTriggerToPoolMappingResponse success,
      AlreadyExistsException o1,
      NoSuchObjectException o2,
      InvalidObjectException o3,
      MetaException o4)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
      this.o4 = o4;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public create_or_drop_wm_trigger_to_pool_mapping_result(create_or_drop_wm_trigger_to_pool_mapping_result other) {
      if (other.isSetSuccess()) {
        this.success = new WMCreateOrDropTriggerToPoolMappingResponse(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new AlreadyExistsException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchObjectException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new InvalidObjectException(other.o3);
      }
      if (other.isSetO4()) {
        this.o4 = new MetaException(other.o4);
      }
    }

    public create_or_drop_wm_trigger_to_pool_mapping_result deepCopy() {
      return new create_or_drop_wm_trigger_to_pool_mapping_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
      this.o4 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public WMCreateOrDropTriggerToPoolMappingResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable WMCreateOrDropTriggerToPoolMappingResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public AlreadyExistsException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable AlreadyExistsException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidObjectException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable InvalidObjectException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO4() {
      return this.o4;
    }

    public void setO4(@org.apache.thrift.annotation.Nullable MetaException o4) {
      this.o4 = o4;
    }

    public void unsetO4() {
      this.o4 = null;
    }

    /** Returns true if field o4 is set (has been assigned a value) and false otherwise */
    public boolean isSetO4() {
      return this.o4 != null;
    }

    public void setO4IsSet(boolean value) {
      if (!value) {
        this.o4 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((WMCreateOrDropTriggerToPoolMappingResponse)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((AlreadyExistsException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchObjectException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((InvalidObjectException)value);
        }
        break;

      case O4:
        if (value == null) {
          unsetO4();
        } else {
          setO4((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      case O4:
        return getO4();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      case O4:
        return isSetO4();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof create_or_drop_wm_trigger_to_pool_mapping_result)
        return this.equals((create_or_drop_wm_trigger_to_pool_mapping_result)that);
      return false;
    }

    public boolean equals(create_or_drop_wm_trigger_to_pool_mapping_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      boolean this_present_o4 = true && this.isSetO4();
      boolean that_present_o4 = true && that.isSetO4();
      if (this_present_o4 || that_present_o4) {
        if (!(this_present_o4 && that_present_o4))
          return false;
        if (!this.o4.equals(that.o4))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      hashCode = hashCode * 8191 + ((isSetO4()) ? 131071 : 524287);
      if (isSetO4())
        hashCode = hashCode * 8191 + o4.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(create_or_drop_wm_trigger_to_pool_mapping_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO4(), other.isSetO4());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO4()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o4, other.o4);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("create_or_drop_wm_trigger_to_pool_mapping_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o4:");
      if (this.o4 == null) {
        sb.append("null");
      } else {
        sb.append(this.o4);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class create_or_drop_wm_trigger_to_pool_mapping_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_or_drop_wm_trigger_to_pool_mapping_resultStandardScheme getScheme() {
        return new create_or_drop_wm_trigger_to_pool_mapping_resultStandardScheme();
      }
    }

    private static class create_or_drop_wm_trigger_to_pool_mapping_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<create_or_drop_wm_trigger_to_pool_mapping_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, create_or_drop_wm_trigger_to_pool_mapping_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new WMCreateOrDropTriggerToPoolMappingResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new AlreadyExistsException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new InvalidObjectException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // O4
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o4 = new MetaException();
                struct.o4.read(iprot);
                struct.setO4IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, create_or_drop_wm_trigger_to_pool_mapping_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o4 != null) {
          oprot.writeFieldBegin(O4_FIELD_DESC);
          struct.o4.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class create_or_drop_wm_trigger_to_pool_mapping_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_or_drop_wm_trigger_to_pool_mapping_resultTupleScheme getScheme() {
        return new create_or_drop_wm_trigger_to_pool_mapping_resultTupleScheme();
      }
    }

    private static class create_or_drop_wm_trigger_to_pool_mapping_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<create_or_drop_wm_trigger_to_pool_mapping_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, create_or_drop_wm_trigger_to_pool_mapping_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        if (struct.isSetO3()) {
          optionals.set(3);
        }
        if (struct.isSetO4()) {
          optionals.set(4);
        }
        oprot.writeBitSet(optionals, 5);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
        if (struct.isSetO4()) {
          struct.o4.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, create_or_drop_wm_trigger_to_pool_mapping_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(5);
        if (incoming.get(0)) {
          struct.success = new WMCreateOrDropTriggerToPoolMappingResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new AlreadyExistsException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new NoSuchObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(3)) {
          struct.o3 = new InvalidObjectException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
        if (incoming.get(4)) {
          struct.o4 = new MetaException();
          struct.o4.read(iprot);
          struct.setO4IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_ischema_args implements org.apache.thrift.TBase<create_ischema_args, create_ischema_args._Fields>, java.io.Serializable, Cloneable, Comparable<create_ischema_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("create_ischema_args");

    private static final org.apache.thrift.protocol.TField SCHEMA_FIELD_DESC = new org.apache.thrift.protocol.TField("schema", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new create_ischema_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new create_ischema_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable ISchema schema; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SCHEMA((short)1, "schema");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // SCHEMA
            return SCHEMA;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SCHEMA, new org.apache.thrift.meta_data.FieldMetaData("schema", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ISchema.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(create_ischema_args.class, metaDataMap);
    }

    public create_ischema_args() {
    }

    public create_ischema_args(
      ISchema schema)
    {
      this();
      this.schema = schema;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public create_ischema_args(create_ischema_args other) {
      if (other.isSetSchema()) {
        this.schema = new ISchema(other.schema);
      }
    }

    public create_ischema_args deepCopy() {
      return new create_ischema_args(this);
    }

    @Override
    public void clear() {
      this.schema = null;
    }

    @org.apache.thrift.annotation.Nullable
    public ISchema getSchema() {
      return this.schema;
    }

    public void setSchema(@org.apache.thrift.annotation.Nullable ISchema schema) {
      this.schema = schema;
    }

    public void unsetSchema() {
      this.schema = null;
    }

    /** Returns true if field schema is set (has been assigned a value) and false otherwise */
    public boolean isSetSchema() {
      return this.schema != null;
    }

    public void setSchemaIsSet(boolean value) {
      if (!value) {
        this.schema = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SCHEMA:
        if (value == null) {
          unsetSchema();
        } else {
          setSchema((ISchema)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SCHEMA:
        return getSchema();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SCHEMA:
        return isSetSchema();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof create_ischema_args)
        return this.equals((create_ischema_args)that);
      return false;
    }

    public boolean equals(create_ischema_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_schema = true && this.isSetSchema();
      boolean that_present_schema = true && that.isSetSchema();
      if (this_present_schema || that_present_schema) {
        if (!(this_present_schema && that_present_schema))
          return false;
        if (!this.schema.equals(that.schema))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSchema()) ? 131071 : 524287);
      if (isSetSchema())
        hashCode = hashCode * 8191 + schema.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(create_ischema_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSchema(), other.isSetSchema());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSchema()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.schema, other.schema);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("create_ischema_args(");
      boolean first = true;

      sb.append("schema:");
      if (this.schema == null) {
        sb.append("null");
      } else {
        sb.append(this.schema);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (schema != null) {
        schema.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class create_ischema_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_ischema_argsStandardScheme getScheme() {
        return new create_ischema_argsStandardScheme();
      }
    }

    private static class create_ischema_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<create_ischema_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, create_ischema_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // SCHEMA
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.schema = new ISchema();
                struct.schema.read(iprot);
                struct.setSchemaIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, create_ischema_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.schema != null) {
          oprot.writeFieldBegin(SCHEMA_FIELD_DESC);
          struct.schema.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class create_ischema_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_ischema_argsTupleScheme getScheme() {
        return new create_ischema_argsTupleScheme();
      }
    }

    private static class create_ischema_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<create_ischema_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, create_ischema_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSchema()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSchema()) {
          struct.schema.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, create_ischema_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.schema = new ISchema();
          struct.schema.read(iprot);
          struct.setSchemaIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class create_ischema_result implements org.apache.thrift.TBase<create_ischema_result, create_ischema_result._Fields>, java.io.Serializable, Cloneable, Comparable<create_ischema_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("create_ischema_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)-1);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new create_ischema_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new create_ischema_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable AlreadyExistsException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)-1, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case -1: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AlreadyExistsException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(create_ischema_result.class, metaDataMap);
    }

    public create_ischema_result() {
    }

    public create_ischema_result(
      AlreadyExistsException o1,
      NoSuchObjectException o2,
      MetaException o3)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public create_ischema_result(create_ischema_result other) {
      if (other.isSetO1()) {
        this.o1 = new AlreadyExistsException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchObjectException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
    }

    public create_ischema_result deepCopy() {
      return new create_ischema_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public AlreadyExistsException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable AlreadyExistsException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((AlreadyExistsException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchObjectException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof create_ischema_result)
        return this.equals((create_ischema_result)that);
      return false;
    }

    public boolean equals(create_ischema_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(create_ischema_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("create_ischema_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class create_ischema_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_ischema_resultStandardScheme getScheme() {
        return new create_ischema_resultStandardScheme();
      }
    }

    private static class create_ischema_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<create_ischema_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, create_ischema_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new AlreadyExistsException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case -1: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, create_ischema_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class create_ischema_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public create_ischema_resultTupleScheme getScheme() {
        return new create_ischema_resultTupleScheme();
      }
    }

    private static class create_ischema_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<create_ischema_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, create_ischema_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        if (struct.isSetO3()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, create_ischema_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.o1 = new AlreadyExistsException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new NoSuchObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_ischema_args implements org.apache.thrift.TBase<alter_ischema_args, alter_ischema_args._Fields>, java.io.Serializable, Cloneable, Comparable<alter_ischema_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("alter_ischema_args");

    private static final org.apache.thrift.protocol.TField RQST_FIELD_DESC = new org.apache.thrift.protocol.TField("rqst", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new alter_ischema_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new alter_ischema_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable AlterISchemaRequest rqst; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      RQST((short)1, "rqst");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // RQST
            return RQST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.RQST, new org.apache.thrift.meta_data.FieldMetaData("rqst", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AlterISchemaRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(alter_ischema_args.class, metaDataMap);
    }

    public alter_ischema_args() {
    }

    public alter_ischema_args(
      AlterISchemaRequest rqst)
    {
      this();
      this.rqst = rqst;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public alter_ischema_args(alter_ischema_args other) {
      if (other.isSetRqst()) {
        this.rqst = new AlterISchemaRequest(other.rqst);
      }
    }

    public alter_ischema_args deepCopy() {
      return new alter_ischema_args(this);
    }

    @Override
    public void clear() {
      this.rqst = null;
    }

    @org.apache.thrift.annotation.Nullable
    public AlterISchemaRequest getRqst() {
      return this.rqst;
    }

    public void setRqst(@org.apache.thrift.annotation.Nullable AlterISchemaRequest rqst) {
      this.rqst = rqst;
    }

    public void unsetRqst() {
      this.rqst = null;
    }

    /** Returns true if field rqst is set (has been assigned a value) and false otherwise */
    public boolean isSetRqst() {
      return this.rqst != null;
    }

    public void setRqstIsSet(boolean value) {
      if (!value) {
        this.rqst = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case RQST:
        if (value == null) {
          unsetRqst();
        } else {
          setRqst((AlterISchemaRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case RQST:
        return getRqst();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case RQST:
        return isSetRqst();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof alter_ischema_args)
        return this.equals((alter_ischema_args)that);
      return false;
    }

    public boolean equals(alter_ischema_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_rqst = true && this.isSetRqst();
      boolean that_present_rqst = true && that.isSetRqst();
      if (this_present_rqst || that_present_rqst) {
        if (!(this_present_rqst && that_present_rqst))
          return false;
        if (!this.rqst.equals(that.rqst))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRqst()) ? 131071 : 524287);
      if (isSetRqst())
        hashCode = hashCode * 8191 + rqst.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(alter_ischema_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRqst(), other.isSetRqst());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRqst()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rqst, other.rqst);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("alter_ischema_args(");
      boolean first = true;

      sb.append("rqst:");
      if (this.rqst == null) {
        sb.append("null");
      } else {
        sb.append(this.rqst);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (rqst != null) {
        rqst.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class alter_ischema_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_ischema_argsStandardScheme getScheme() {
        return new alter_ischema_argsStandardScheme();
      }
    }

    private static class alter_ischema_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<alter_ischema_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, alter_ischema_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // RQST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.rqst = new AlterISchemaRequest();
                struct.rqst.read(iprot);
                struct.setRqstIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, alter_ischema_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.rqst != null) {
          oprot.writeFieldBegin(RQST_FIELD_DESC);
          struct.rqst.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class alter_ischema_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_ischema_argsTupleScheme getScheme() {
        return new alter_ischema_argsTupleScheme();
      }
    }

    private static class alter_ischema_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<alter_ischema_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, alter_ischema_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRqst()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRqst()) {
          struct.rqst.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, alter_ischema_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.rqst = new AlterISchemaRequest();
          struct.rqst.read(iprot);
          struct.setRqstIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class alter_ischema_result implements org.apache.thrift.TBase<alter_ischema_result, alter_ischema_result._Fields>, java.io.Serializable, Cloneable, Comparable<alter_ischema_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("alter_ischema_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new alter_ischema_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new alter_ischema_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(alter_ischema_result.class, metaDataMap);
    }

    public alter_ischema_result() {
    }

    public alter_ischema_result(
      NoSuchObjectException o1,
      MetaException o2)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public alter_ischema_result(alter_ischema_result other) {
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public alter_ischema_result deepCopy() {
      return new alter_ischema_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof alter_ischema_result)
        return this.equals((alter_ischema_result)that);
      return false;
    }

    public boolean equals(alter_ischema_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(alter_ischema_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("alter_ischema_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class alter_ischema_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_ischema_resultStandardScheme getScheme() {
        return new alter_ischema_resultStandardScheme();
      }
    }

    private static class alter_ischema_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<alter_ischema_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, alter_ischema_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, alter_ischema_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class alter_ischema_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public alter_ischema_resultTupleScheme getScheme() {
        return new alter_ischema_resultTupleScheme();
      }
    }

    private static class alter_ischema_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<alter_ischema_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, alter_ischema_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, alter_ischema_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_ischema_args implements org.apache.thrift.TBase<get_ischema_args, get_ischema_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_ischema_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_ischema_args");

    private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_ischema_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_ischema_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable ISchemaName name; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      NAME((short)1, "name");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // NAME
            return NAME;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ISchemaName.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_ischema_args.class, metaDataMap);
    }

    public get_ischema_args() {
    }

    public get_ischema_args(
      ISchemaName name)
    {
      this();
      this.name = name;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_ischema_args(get_ischema_args other) {
      if (other.isSetName()) {
        this.name = new ISchemaName(other.name);
      }
    }

    public get_ischema_args deepCopy() {
      return new get_ischema_args(this);
    }

    @Override
    public void clear() {
      this.name = null;
    }

    @org.apache.thrift.annotation.Nullable
    public ISchemaName getName() {
      return this.name;
    }

    public void setName(@org.apache.thrift.annotation.Nullable ISchemaName name) {
      this.name = name;
    }

    public void unsetName() {
      this.name = null;
    }

    /** Returns true if field name is set (has been assigned a value) and false otherwise */
    public boolean isSetName() {
      return this.name != null;
    }

    public void setNameIsSet(boolean value) {
      if (!value) {
        this.name = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case NAME:
        if (value == null) {
          unsetName();
        } else {
          setName((ISchemaName)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case NAME:
        return getName();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case NAME:
        return isSetName();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_ischema_args)
        return this.equals((get_ischema_args)that);
      return false;
    }

    public boolean equals(get_ischema_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_name = true && this.isSetName();
      boolean that_present_name = true && that.isSetName();
      if (this_present_name || that_present_name) {
        if (!(this_present_name && that_present_name))
          return false;
        if (!this.name.equals(that.name))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetName()) ? 131071 : 524287);
      if (isSetName())
        hashCode = hashCode * 8191 + name.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_ischema_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetName(), other.isSetName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, other.name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_ischema_args(");
      boolean first = true;

      sb.append("name:");
      if (this.name == null) {
        sb.append("null");
      } else {
        sb.append(this.name);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (name != null) {
        name.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_ischema_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_ischema_argsStandardScheme getScheme() {
        return new get_ischema_argsStandardScheme();
      }
    }

    private static class get_ischema_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_ischema_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_ischema_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.name = new ISchemaName();
                struct.name.read(iprot);
                struct.setNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_ischema_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.name != null) {
          oprot.writeFieldBegin(NAME_FIELD_DESC);
          struct.name.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_ischema_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_ischema_argsTupleScheme getScheme() {
        return new get_ischema_argsTupleScheme();
      }
    }

    private static class get_ischema_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_ischema_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_ischema_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetName()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetName()) {
          struct.name.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_ischema_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.name = new ISchemaName();
          struct.name.read(iprot);
          struct.setNameIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_ischema_result implements org.apache.thrift.TBase<get_ischema_result, get_ischema_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_ischema_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_ischema_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_ischema_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_ischema_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable ISchema success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ISchema.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_ischema_result.class, metaDataMap);
    }

    public get_ischema_result() {
    }

    public get_ischema_result(
      ISchema success,
      NoSuchObjectException o1,
      MetaException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_ischema_result(get_ischema_result other) {
      if (other.isSetSuccess()) {
        this.success = new ISchema(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public get_ischema_result deepCopy() {
      return new get_ischema_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public ISchema getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable ISchema success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((ISchema)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_ischema_result)
        return this.equals((get_ischema_result)that);
      return false;
    }

    public boolean equals(get_ischema_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_ischema_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_ischema_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_ischema_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_ischema_resultStandardScheme getScheme() {
        return new get_ischema_resultStandardScheme();
      }
    }

    private static class get_ischema_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_ischema_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_ischema_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new ISchema();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_ischema_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_ischema_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_ischema_resultTupleScheme getScheme() {
        return new get_ischema_resultTupleScheme();
      }
    }

    private static class get_ischema_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_ischema_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_ischema_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_ischema_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = new ISchema();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_ischema_args implements org.apache.thrift.TBase<drop_ischema_args, drop_ischema_args._Fields>, java.io.Serializable, Cloneable, Comparable<drop_ischema_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_ischema_args");

    private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_ischema_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_ischema_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable ISchemaName name; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      NAME((short)1, "name");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // NAME
            return NAME;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ISchemaName.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_ischema_args.class, metaDataMap);
    }

    public drop_ischema_args() {
    }

    public drop_ischema_args(
      ISchemaName name)
    {
      this();
      this.name = name;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_ischema_args(drop_ischema_args other) {
      if (other.isSetName()) {
        this.name = new ISchemaName(other.name);
      }
    }

    public drop_ischema_args deepCopy() {
      return new drop_ischema_args(this);
    }

    @Override
    public void clear() {
      this.name = null;
    }

    @org.apache.thrift.annotation.Nullable
    public ISchemaName getName() {
      return this.name;
    }

    public void setName(@org.apache.thrift.annotation.Nullable ISchemaName name) {
      this.name = name;
    }

    public void unsetName() {
      this.name = null;
    }

    /** Returns true if field name is set (has been assigned a value) and false otherwise */
    public boolean isSetName() {
      return this.name != null;
    }

    public void setNameIsSet(boolean value) {
      if (!value) {
        this.name = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case NAME:
        if (value == null) {
          unsetName();
        } else {
          setName((ISchemaName)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case NAME:
        return getName();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case NAME:
        return isSetName();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_ischema_args)
        return this.equals((drop_ischema_args)that);
      return false;
    }

    public boolean equals(drop_ischema_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_name = true && this.isSetName();
      boolean that_present_name = true && that.isSetName();
      if (this_present_name || that_present_name) {
        if (!(this_present_name && that_present_name))
          return false;
        if (!this.name.equals(that.name))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetName()) ? 131071 : 524287);
      if (isSetName())
        hashCode = hashCode * 8191 + name.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(drop_ischema_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetName(), other.isSetName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, other.name);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_ischema_args(");
      boolean first = true;

      sb.append("name:");
      if (this.name == null) {
        sb.append("null");
      } else {
        sb.append(this.name);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (name != null) {
        name.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_ischema_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_ischema_argsStandardScheme getScheme() {
        return new drop_ischema_argsStandardScheme();
      }
    }

    private static class drop_ischema_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_ischema_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_ischema_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.name = new ISchemaName();
                struct.name.read(iprot);
                struct.setNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_ischema_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.name != null) {
          oprot.writeFieldBegin(NAME_FIELD_DESC);
          struct.name.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_ischema_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_ischema_argsTupleScheme getScheme() {
        return new drop_ischema_argsTupleScheme();
      }
    }

    private static class drop_ischema_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_ischema_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_ischema_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetName()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetName()) {
          struct.name.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_ischema_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.name = new ISchemaName();
          struct.name.read(iprot);
          struct.setNameIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_ischema_result implements org.apache.thrift.TBase<drop_ischema_result, drop_ischema_result._Fields>, java.io.Serializable, Cloneable, Comparable<drop_ischema_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_ischema_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_ischema_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_ischema_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable InvalidOperationException o2; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidOperationException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_ischema_result.class, metaDataMap);
    }

    public drop_ischema_result() {
    }

    public drop_ischema_result(
      NoSuchObjectException o1,
      InvalidOperationException o2,
      MetaException o3)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_ischema_result(drop_ischema_result other) {
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new InvalidOperationException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
    }

    public drop_ischema_result deepCopy() {
      return new drop_ischema_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidOperationException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable InvalidOperationException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((InvalidOperationException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_ischema_result)
        return this.equals((drop_ischema_result)that);
      return false;
    }

    public boolean equals(drop_ischema_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(drop_ischema_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_ischema_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_ischema_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_ischema_resultStandardScheme getScheme() {
        return new drop_ischema_resultStandardScheme();
      }
    }

    private static class drop_ischema_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_ischema_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_ischema_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new InvalidOperationException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_ischema_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_ischema_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_ischema_resultTupleScheme getScheme() {
        return new drop_ischema_resultTupleScheme();
      }
    }

    private static class drop_ischema_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_ischema_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_ischema_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        if (struct.isSetO3()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_ischema_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new InvalidOperationException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_schema_version_args implements org.apache.thrift.TBase<add_schema_version_args, add_schema_version_args._Fields>, java.io.Serializable, Cloneable, Comparable<add_schema_version_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("add_schema_version_args");

    private static final org.apache.thrift.protocol.TField SCHEMA_VERSION_FIELD_DESC = new org.apache.thrift.protocol.TField("schemaVersion", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new add_schema_version_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new add_schema_version_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable SchemaVersion schemaVersion; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SCHEMA_VERSION((short)1, "schemaVersion");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // SCHEMA_VERSION
            return SCHEMA_VERSION;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SCHEMA_VERSION, new org.apache.thrift.meta_data.FieldMetaData("schemaVersion", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SchemaVersion.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(add_schema_version_args.class, metaDataMap);
    }

    public add_schema_version_args() {
    }

    public add_schema_version_args(
      SchemaVersion schemaVersion)
    {
      this();
      this.schemaVersion = schemaVersion;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public add_schema_version_args(add_schema_version_args other) {
      if (other.isSetSchemaVersion()) {
        this.schemaVersion = new SchemaVersion(other.schemaVersion);
      }
    }

    public add_schema_version_args deepCopy() {
      return new add_schema_version_args(this);
    }

    @Override
    public void clear() {
      this.schemaVersion = null;
    }

    @org.apache.thrift.annotation.Nullable
    public SchemaVersion getSchemaVersion() {
      return this.schemaVersion;
    }

    public void setSchemaVersion(@org.apache.thrift.annotation.Nullable SchemaVersion schemaVersion) {
      this.schemaVersion = schemaVersion;
    }

    public void unsetSchemaVersion() {
      this.schemaVersion = null;
    }

    /** Returns true if field schemaVersion is set (has been assigned a value) and false otherwise */
    public boolean isSetSchemaVersion() {
      return this.schemaVersion != null;
    }

    public void setSchemaVersionIsSet(boolean value) {
      if (!value) {
        this.schemaVersion = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SCHEMA_VERSION:
        if (value == null) {
          unsetSchemaVersion();
        } else {
          setSchemaVersion((SchemaVersion)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SCHEMA_VERSION:
        return getSchemaVersion();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SCHEMA_VERSION:
        return isSetSchemaVersion();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof add_schema_version_args)
        return this.equals((add_schema_version_args)that);
      return false;
    }

    public boolean equals(add_schema_version_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_schemaVersion = true && this.isSetSchemaVersion();
      boolean that_present_schemaVersion = true && that.isSetSchemaVersion();
      if (this_present_schemaVersion || that_present_schemaVersion) {
        if (!(this_present_schemaVersion && that_present_schemaVersion))
          return false;
        if (!this.schemaVersion.equals(that.schemaVersion))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSchemaVersion()) ? 131071 : 524287);
      if (isSetSchemaVersion())
        hashCode = hashCode * 8191 + schemaVersion.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(add_schema_version_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSchemaVersion(), other.isSetSchemaVersion());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSchemaVersion()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.schemaVersion, other.schemaVersion);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("add_schema_version_args(");
      boolean first = true;

      sb.append("schemaVersion:");
      if (this.schemaVersion == null) {
        sb.append("null");
      } else {
        sb.append(this.schemaVersion);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (schemaVersion != null) {
        schemaVersion.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class add_schema_version_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_schema_version_argsStandardScheme getScheme() {
        return new add_schema_version_argsStandardScheme();
      }
    }

    private static class add_schema_version_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<add_schema_version_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, add_schema_version_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // SCHEMA_VERSION
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.schemaVersion = new SchemaVersion();
                struct.schemaVersion.read(iprot);
                struct.setSchemaVersionIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, add_schema_version_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.schemaVersion != null) {
          oprot.writeFieldBegin(SCHEMA_VERSION_FIELD_DESC);
          struct.schemaVersion.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class add_schema_version_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_schema_version_argsTupleScheme getScheme() {
        return new add_schema_version_argsTupleScheme();
      }
    }

    private static class add_schema_version_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<add_schema_version_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, add_schema_version_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSchemaVersion()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSchemaVersion()) {
          struct.schemaVersion.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, add_schema_version_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.schemaVersion = new SchemaVersion();
          struct.schemaVersion.read(iprot);
          struct.setSchemaVersionIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_schema_version_result implements org.apache.thrift.TBase<add_schema_version_result, add_schema_version_result._Fields>, java.io.Serializable, Cloneable, Comparable<add_schema_version_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("add_schema_version_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new add_schema_version_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new add_schema_version_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable AlreadyExistsException o1; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AlreadyExistsException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(add_schema_version_result.class, metaDataMap);
    }

    public add_schema_version_result() {
    }

    public add_schema_version_result(
      AlreadyExistsException o1,
      NoSuchObjectException o2,
      MetaException o3)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public add_schema_version_result(add_schema_version_result other) {
      if (other.isSetO1()) {
        this.o1 = new AlreadyExistsException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new NoSuchObjectException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
    }

    public add_schema_version_result deepCopy() {
      return new add_schema_version_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public AlreadyExistsException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable AlreadyExistsException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((AlreadyExistsException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((NoSuchObjectException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof add_schema_version_result)
        return this.equals((add_schema_version_result)that);
      return false;
    }

    public boolean equals(add_schema_version_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(add_schema_version_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("add_schema_version_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class add_schema_version_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_schema_version_resultStandardScheme getScheme() {
        return new add_schema_version_resultStandardScheme();
      }
    }

    private static class add_schema_version_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<add_schema_version_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, add_schema_version_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new AlreadyExistsException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new NoSuchObjectException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, add_schema_version_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class add_schema_version_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_schema_version_resultTupleScheme getScheme() {
        return new add_schema_version_resultTupleScheme();
      }
    }

    private static class add_schema_version_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<add_schema_version_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, add_schema_version_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        if (struct.isSetO3()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, add_schema_version_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.o1 = new AlreadyExistsException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new NoSuchObjectException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_schema_version_args implements org.apache.thrift.TBase<get_schema_version_args, get_schema_version_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_schema_version_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_schema_version_args");

    private static final org.apache.thrift.protocol.TField SCHEMA_VERSION_FIELD_DESC = new org.apache.thrift.protocol.TField("schemaVersion", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_schema_version_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_schema_version_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable SchemaVersionDescriptor schemaVersion; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SCHEMA_VERSION((short)1, "schemaVersion");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // SCHEMA_VERSION
            return SCHEMA_VERSION;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SCHEMA_VERSION, new org.apache.thrift.meta_data.FieldMetaData("schemaVersion", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SchemaVersionDescriptor.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_schema_version_args.class, metaDataMap);
    }

    public get_schema_version_args() {
    }

    public get_schema_version_args(
      SchemaVersionDescriptor schemaVersion)
    {
      this();
      this.schemaVersion = schemaVersion;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_schema_version_args(get_schema_version_args other) {
      if (other.isSetSchemaVersion()) {
        this.schemaVersion = new SchemaVersionDescriptor(other.schemaVersion);
      }
    }

    public get_schema_version_args deepCopy() {
      return new get_schema_version_args(this);
    }

    @Override
    public void clear() {
      this.schemaVersion = null;
    }

    @org.apache.thrift.annotation.Nullable
    public SchemaVersionDescriptor getSchemaVersion() {
      return this.schemaVersion;
    }

    public void setSchemaVersion(@org.apache.thrift.annotation.Nullable SchemaVersionDescriptor schemaVersion) {
      this.schemaVersion = schemaVersion;
    }

    public void unsetSchemaVersion() {
      this.schemaVersion = null;
    }

    /** Returns true if field schemaVersion is set (has been assigned a value) and false otherwise */
    public boolean isSetSchemaVersion() {
      return this.schemaVersion != null;
    }

    public void setSchemaVersionIsSet(boolean value) {
      if (!value) {
        this.schemaVersion = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SCHEMA_VERSION:
        if (value == null) {
          unsetSchemaVersion();
        } else {
          setSchemaVersion((SchemaVersionDescriptor)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SCHEMA_VERSION:
        return getSchemaVersion();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SCHEMA_VERSION:
        return isSetSchemaVersion();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_schema_version_args)
        return this.equals((get_schema_version_args)that);
      return false;
    }

    public boolean equals(get_schema_version_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_schemaVersion = true && this.isSetSchemaVersion();
      boolean that_present_schemaVersion = true && that.isSetSchemaVersion();
      if (this_present_schemaVersion || that_present_schemaVersion) {
        if (!(this_present_schemaVersion && that_present_schemaVersion))
          return false;
        if (!this.schemaVersion.equals(that.schemaVersion))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSchemaVersion()) ? 131071 : 524287);
      if (isSetSchemaVersion())
        hashCode = hashCode * 8191 + schemaVersion.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_schema_version_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSchemaVersion(), other.isSetSchemaVersion());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSchemaVersion()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.schemaVersion, other.schemaVersion);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_schema_version_args(");
      boolean first = true;

      sb.append("schemaVersion:");
      if (this.schemaVersion == null) {
        sb.append("null");
      } else {
        sb.append(this.schemaVersion);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (schemaVersion != null) {
        schemaVersion.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_schema_version_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_schema_version_argsStandardScheme getScheme() {
        return new get_schema_version_argsStandardScheme();
      }
    }

    private static class get_schema_version_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_schema_version_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_schema_version_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // SCHEMA_VERSION
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.schemaVersion = new SchemaVersionDescriptor();
                struct.schemaVersion.read(iprot);
                struct.setSchemaVersionIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_schema_version_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.schemaVersion != null) {
          oprot.writeFieldBegin(SCHEMA_VERSION_FIELD_DESC);
          struct.schemaVersion.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_schema_version_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_schema_version_argsTupleScheme getScheme() {
        return new get_schema_version_argsTupleScheme();
      }
    }

    private static class get_schema_version_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_schema_version_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_schema_version_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSchemaVersion()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSchemaVersion()) {
          struct.schemaVersion.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_schema_version_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.schemaVersion = new SchemaVersionDescriptor();
          struct.schemaVersion.read(iprot);
          struct.setSchemaVersionIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_schema_version_result implements org.apache.thrift.TBase<get_schema_version_result, get_schema_version_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_schema_version_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_schema_version_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_schema_version_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_schema_version_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable SchemaVersion success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SchemaVersion.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_schema_version_result.class, metaDataMap);
    }

    public get_schema_version_result() {
    }

    public get_schema_version_result(
      SchemaVersion success,
      NoSuchObjectException o1,
      MetaException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_schema_version_result(get_schema_version_result other) {
      if (other.isSetSuccess()) {
        this.success = new SchemaVersion(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public get_schema_version_result deepCopy() {
      return new get_schema_version_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public SchemaVersion getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable SchemaVersion success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((SchemaVersion)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_schema_version_result)
        return this.equals((get_schema_version_result)that);
      return false;
    }

    public boolean equals(get_schema_version_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_schema_version_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_schema_version_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_schema_version_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_schema_version_resultStandardScheme getScheme() {
        return new get_schema_version_resultStandardScheme();
      }
    }

    private static class get_schema_version_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_schema_version_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_schema_version_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new SchemaVersion();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_schema_version_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_schema_version_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_schema_version_resultTupleScheme getScheme() {
        return new get_schema_version_resultTupleScheme();
      }
    }

    private static class get_schema_version_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_schema_version_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_schema_version_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_schema_version_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = new SchemaVersion();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_schema_latest_version_args implements org.apache.thrift.TBase<get_schema_latest_version_args, get_schema_latest_version_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_schema_latest_version_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_schema_latest_version_args");

    private static final org.apache.thrift.protocol.TField SCHEMA_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("schemaName", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_schema_latest_version_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_schema_latest_version_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable ISchemaName schemaName; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SCHEMA_NAME((short)1, "schemaName");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // SCHEMA_NAME
            return SCHEMA_NAME;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SCHEMA_NAME, new org.apache.thrift.meta_data.FieldMetaData("schemaName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ISchemaName.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_schema_latest_version_args.class, metaDataMap);
    }

    public get_schema_latest_version_args() {
    }

    public get_schema_latest_version_args(
      ISchemaName schemaName)
    {
      this();
      this.schemaName = schemaName;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_schema_latest_version_args(get_schema_latest_version_args other) {
      if (other.isSetSchemaName()) {
        this.schemaName = new ISchemaName(other.schemaName);
      }
    }

    public get_schema_latest_version_args deepCopy() {
      return new get_schema_latest_version_args(this);
    }

    @Override
    public void clear() {
      this.schemaName = null;
    }

    @org.apache.thrift.annotation.Nullable
    public ISchemaName getSchemaName() {
      return this.schemaName;
    }

    public void setSchemaName(@org.apache.thrift.annotation.Nullable ISchemaName schemaName) {
      this.schemaName = schemaName;
    }

    public void unsetSchemaName() {
      this.schemaName = null;
    }

    /** Returns true if field schemaName is set (has been assigned a value) and false otherwise */
    public boolean isSetSchemaName() {
      return this.schemaName != null;
    }

    public void setSchemaNameIsSet(boolean value) {
      if (!value) {
        this.schemaName = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SCHEMA_NAME:
        if (value == null) {
          unsetSchemaName();
        } else {
          setSchemaName((ISchemaName)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SCHEMA_NAME:
        return getSchemaName();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SCHEMA_NAME:
        return isSetSchemaName();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_schema_latest_version_args)
        return this.equals((get_schema_latest_version_args)that);
      return false;
    }

    public boolean equals(get_schema_latest_version_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_schemaName = true && this.isSetSchemaName();
      boolean that_present_schemaName = true && that.isSetSchemaName();
      if (this_present_schemaName || that_present_schemaName) {
        if (!(this_present_schemaName && that_present_schemaName))
          return false;
        if (!this.schemaName.equals(that.schemaName))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSchemaName()) ? 131071 : 524287);
      if (isSetSchemaName())
        hashCode = hashCode * 8191 + schemaName.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_schema_latest_version_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSchemaName(), other.isSetSchemaName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSchemaName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.schemaName, other.schemaName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_schema_latest_version_args(");
      boolean first = true;

      sb.append("schemaName:");
      if (this.schemaName == null) {
        sb.append("null");
      } else {
        sb.append(this.schemaName);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (schemaName != null) {
        schemaName.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_schema_latest_version_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_schema_latest_version_argsStandardScheme getScheme() {
        return new get_schema_latest_version_argsStandardScheme();
      }
    }

    private static class get_schema_latest_version_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_schema_latest_version_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_schema_latest_version_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // SCHEMA_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.schemaName = new ISchemaName();
                struct.schemaName.read(iprot);
                struct.setSchemaNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_schema_latest_version_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.schemaName != null) {
          oprot.writeFieldBegin(SCHEMA_NAME_FIELD_DESC);
          struct.schemaName.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_schema_latest_version_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_schema_latest_version_argsTupleScheme getScheme() {
        return new get_schema_latest_version_argsTupleScheme();
      }
    }

    private static class get_schema_latest_version_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_schema_latest_version_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_schema_latest_version_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSchemaName()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSchemaName()) {
          struct.schemaName.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_schema_latest_version_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.schemaName = new ISchemaName();
          struct.schemaName.read(iprot);
          struct.setSchemaNameIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_schema_latest_version_result implements org.apache.thrift.TBase<get_schema_latest_version_result, get_schema_latest_version_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_schema_latest_version_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_schema_latest_version_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_schema_latest_version_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_schema_latest_version_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable SchemaVersion success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SchemaVersion.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_schema_latest_version_result.class, metaDataMap);
    }

    public get_schema_latest_version_result() {
    }

    public get_schema_latest_version_result(
      SchemaVersion success,
      NoSuchObjectException o1,
      MetaException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_schema_latest_version_result(get_schema_latest_version_result other) {
      if (other.isSetSuccess()) {
        this.success = new SchemaVersion(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public get_schema_latest_version_result deepCopy() {
      return new get_schema_latest_version_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public SchemaVersion getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable SchemaVersion success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((SchemaVersion)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_schema_latest_version_result)
        return this.equals((get_schema_latest_version_result)that);
      return false;
    }

    public boolean equals(get_schema_latest_version_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_schema_latest_version_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_schema_latest_version_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_schema_latest_version_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_schema_latest_version_resultStandardScheme getScheme() {
        return new get_schema_latest_version_resultStandardScheme();
      }
    }

    private static class get_schema_latest_version_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_schema_latest_version_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_schema_latest_version_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new SchemaVersion();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_schema_latest_version_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_schema_latest_version_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_schema_latest_version_resultTupleScheme getScheme() {
        return new get_schema_latest_version_resultTupleScheme();
      }
    }

    private static class get_schema_latest_version_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_schema_latest_version_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_schema_latest_version_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_schema_latest_version_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = new SchemaVersion();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_schema_all_versions_args implements org.apache.thrift.TBase<get_schema_all_versions_args, get_schema_all_versions_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_schema_all_versions_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_schema_all_versions_args");

    private static final org.apache.thrift.protocol.TField SCHEMA_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("schemaName", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_schema_all_versions_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_schema_all_versions_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable ISchemaName schemaName; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SCHEMA_NAME((short)1, "schemaName");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // SCHEMA_NAME
            return SCHEMA_NAME;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SCHEMA_NAME, new org.apache.thrift.meta_data.FieldMetaData("schemaName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ISchemaName.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_schema_all_versions_args.class, metaDataMap);
    }

    public get_schema_all_versions_args() {
    }

    public get_schema_all_versions_args(
      ISchemaName schemaName)
    {
      this();
      this.schemaName = schemaName;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_schema_all_versions_args(get_schema_all_versions_args other) {
      if (other.isSetSchemaName()) {
        this.schemaName = new ISchemaName(other.schemaName);
      }
    }

    public get_schema_all_versions_args deepCopy() {
      return new get_schema_all_versions_args(this);
    }

    @Override
    public void clear() {
      this.schemaName = null;
    }

    @org.apache.thrift.annotation.Nullable
    public ISchemaName getSchemaName() {
      return this.schemaName;
    }

    public void setSchemaName(@org.apache.thrift.annotation.Nullable ISchemaName schemaName) {
      this.schemaName = schemaName;
    }

    public void unsetSchemaName() {
      this.schemaName = null;
    }

    /** Returns true if field schemaName is set (has been assigned a value) and false otherwise */
    public boolean isSetSchemaName() {
      return this.schemaName != null;
    }

    public void setSchemaNameIsSet(boolean value) {
      if (!value) {
        this.schemaName = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SCHEMA_NAME:
        if (value == null) {
          unsetSchemaName();
        } else {
          setSchemaName((ISchemaName)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SCHEMA_NAME:
        return getSchemaName();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SCHEMA_NAME:
        return isSetSchemaName();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_schema_all_versions_args)
        return this.equals((get_schema_all_versions_args)that);
      return false;
    }

    public boolean equals(get_schema_all_versions_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_schemaName = true && this.isSetSchemaName();
      boolean that_present_schemaName = true && that.isSetSchemaName();
      if (this_present_schemaName || that_present_schemaName) {
        if (!(this_present_schemaName && that_present_schemaName))
          return false;
        if (!this.schemaName.equals(that.schemaName))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSchemaName()) ? 131071 : 524287);
      if (isSetSchemaName())
        hashCode = hashCode * 8191 + schemaName.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_schema_all_versions_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSchemaName(), other.isSetSchemaName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSchemaName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.schemaName, other.schemaName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_schema_all_versions_args(");
      boolean first = true;

      sb.append("schemaName:");
      if (this.schemaName == null) {
        sb.append("null");
      } else {
        sb.append(this.schemaName);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (schemaName != null) {
        schemaName.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_schema_all_versions_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_schema_all_versions_argsStandardScheme getScheme() {
        return new get_schema_all_versions_argsStandardScheme();
      }
    }

    private static class get_schema_all_versions_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_schema_all_versions_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_schema_all_versions_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // SCHEMA_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.schemaName = new ISchemaName();
                struct.schemaName.read(iprot);
                struct.setSchemaNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_schema_all_versions_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.schemaName != null) {
          oprot.writeFieldBegin(SCHEMA_NAME_FIELD_DESC);
          struct.schemaName.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_schema_all_versions_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_schema_all_versions_argsTupleScheme getScheme() {
        return new get_schema_all_versions_argsTupleScheme();
      }
    }

    private static class get_schema_all_versions_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_schema_all_versions_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_schema_all_versions_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSchemaName()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSchemaName()) {
          struct.schemaName.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_schema_all_versions_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.schemaName = new ISchemaName();
          struct.schemaName.read(iprot);
          struct.setSchemaNameIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_schema_all_versions_result implements org.apache.thrift.TBase<get_schema_all_versions_result, get_schema_all_versions_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_schema_all_versions_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_schema_all_versions_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_schema_all_versions_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_schema_all_versions_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<SchemaVersion> success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SchemaVersion.class))));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_schema_all_versions_result.class, metaDataMap);
    }

    public get_schema_all_versions_result() {
    }

    public get_schema_all_versions_result(
      java.util.List<SchemaVersion> success,
      NoSuchObjectException o1,
      MetaException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_schema_all_versions_result(get_schema_all_versions_result other) {
      if (other.isSetSuccess()) {
        java.util.List<SchemaVersion> __this__success = new java.util.ArrayList<SchemaVersion>(other.success.size());
        for (SchemaVersion other_element : other.success) {
          __this__success.add(new SchemaVersion(other_element));
        }
        this.success = __this__success;
      }
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public get_schema_all_versions_result deepCopy() {
      return new get_schema_all_versions_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<SchemaVersion> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(SchemaVersion elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<SchemaVersion>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<SchemaVersion> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<SchemaVersion> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<SchemaVersion>)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_schema_all_versions_result)
        return this.equals((get_schema_all_versions_result)that);
      return false;
    }

    public boolean equals(get_schema_all_versions_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_schema_all_versions_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_schema_all_versions_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_schema_all_versions_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_schema_all_versions_resultStandardScheme getScheme() {
        return new get_schema_all_versions_resultStandardScheme();
      }
    }

    private static class get_schema_all_versions_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_schema_all_versions_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_schema_all_versions_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1476 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<SchemaVersion>(_list1476.size);
                  @org.apache.thrift.annotation.Nullable SchemaVersion _elem1477;
                  for (int _i1478 = 0; _i1478 < _list1476.size; ++_i1478)
                  {
                    _elem1477 = new SchemaVersion();
                    _elem1477.read(iprot);
                    struct.success.add(_elem1477);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_schema_all_versions_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
            for (SchemaVersion _iter1479 : struct.success)
            {
              _iter1479.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_schema_all_versions_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_schema_all_versions_resultTupleScheme getScheme() {
        return new get_schema_all_versions_resultTupleScheme();
      }
    }

    private static class get_schema_all_versions_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_schema_all_versions_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_schema_all_versions_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (SchemaVersion _iter1480 : struct.success)
            {
              _iter1480.write(oprot);
            }
          }
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_schema_all_versions_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list1481 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
            struct.success = new java.util.ArrayList<SchemaVersion>(_list1481.size);
            @org.apache.thrift.annotation.Nullable SchemaVersion _elem1482;
            for (int _i1483 = 0; _i1483 < _list1481.size; ++_i1483)
            {
              _elem1482 = new SchemaVersion();
              _elem1482.read(iprot);
              struct.success.add(_elem1482);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_schema_version_args implements org.apache.thrift.TBase<drop_schema_version_args, drop_schema_version_args._Fields>, java.io.Serializable, Cloneable, Comparable<drop_schema_version_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_schema_version_args");

    private static final org.apache.thrift.protocol.TField SCHEMA_VERSION_FIELD_DESC = new org.apache.thrift.protocol.TField("schemaVersion", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_schema_version_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_schema_version_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable SchemaVersionDescriptor schemaVersion; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SCHEMA_VERSION((short)1, "schemaVersion");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // SCHEMA_VERSION
            return SCHEMA_VERSION;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SCHEMA_VERSION, new org.apache.thrift.meta_data.FieldMetaData("schemaVersion", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SchemaVersionDescriptor.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_schema_version_args.class, metaDataMap);
    }

    public drop_schema_version_args() {
    }

    public drop_schema_version_args(
      SchemaVersionDescriptor schemaVersion)
    {
      this();
      this.schemaVersion = schemaVersion;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_schema_version_args(drop_schema_version_args other) {
      if (other.isSetSchemaVersion()) {
        this.schemaVersion = new SchemaVersionDescriptor(other.schemaVersion);
      }
    }

    public drop_schema_version_args deepCopy() {
      return new drop_schema_version_args(this);
    }

    @Override
    public void clear() {
      this.schemaVersion = null;
    }

    @org.apache.thrift.annotation.Nullable
    public SchemaVersionDescriptor getSchemaVersion() {
      return this.schemaVersion;
    }

    public void setSchemaVersion(@org.apache.thrift.annotation.Nullable SchemaVersionDescriptor schemaVersion) {
      this.schemaVersion = schemaVersion;
    }

    public void unsetSchemaVersion() {
      this.schemaVersion = null;
    }

    /** Returns true if field schemaVersion is set (has been assigned a value) and false otherwise */
    public boolean isSetSchemaVersion() {
      return this.schemaVersion != null;
    }

    public void setSchemaVersionIsSet(boolean value) {
      if (!value) {
        this.schemaVersion = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SCHEMA_VERSION:
        if (value == null) {
          unsetSchemaVersion();
        } else {
          setSchemaVersion((SchemaVersionDescriptor)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SCHEMA_VERSION:
        return getSchemaVersion();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SCHEMA_VERSION:
        return isSetSchemaVersion();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_schema_version_args)
        return this.equals((drop_schema_version_args)that);
      return false;
    }

    public boolean equals(drop_schema_version_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_schemaVersion = true && this.isSetSchemaVersion();
      boolean that_present_schemaVersion = true && that.isSetSchemaVersion();
      if (this_present_schemaVersion || that_present_schemaVersion) {
        if (!(this_present_schemaVersion && that_present_schemaVersion))
          return false;
        if (!this.schemaVersion.equals(that.schemaVersion))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSchemaVersion()) ? 131071 : 524287);
      if (isSetSchemaVersion())
        hashCode = hashCode * 8191 + schemaVersion.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(drop_schema_version_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSchemaVersion(), other.isSetSchemaVersion());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSchemaVersion()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.schemaVersion, other.schemaVersion);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_schema_version_args(");
      boolean first = true;

      sb.append("schemaVersion:");
      if (this.schemaVersion == null) {
        sb.append("null");
      } else {
        sb.append(this.schemaVersion);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (schemaVersion != null) {
        schemaVersion.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_schema_version_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_schema_version_argsStandardScheme getScheme() {
        return new drop_schema_version_argsStandardScheme();
      }
    }

    private static class drop_schema_version_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_schema_version_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_schema_version_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // SCHEMA_VERSION
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.schemaVersion = new SchemaVersionDescriptor();
                struct.schemaVersion.read(iprot);
                struct.setSchemaVersionIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_schema_version_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.schemaVersion != null) {
          oprot.writeFieldBegin(SCHEMA_VERSION_FIELD_DESC);
          struct.schemaVersion.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_schema_version_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_schema_version_argsTupleScheme getScheme() {
        return new drop_schema_version_argsTupleScheme();
      }
    }

    private static class drop_schema_version_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_schema_version_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_schema_version_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSchemaVersion()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSchemaVersion()) {
          struct.schemaVersion.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_schema_version_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.schemaVersion = new SchemaVersionDescriptor();
          struct.schemaVersion.read(iprot);
          struct.setSchemaVersionIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class drop_schema_version_result implements org.apache.thrift.TBase<drop_schema_version_result, drop_schema_version_result._Fields>, java.io.Serializable, Cloneable, Comparable<drop_schema_version_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("drop_schema_version_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new drop_schema_version_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new drop_schema_version_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(drop_schema_version_result.class, metaDataMap);
    }

    public drop_schema_version_result() {
    }

    public drop_schema_version_result(
      NoSuchObjectException o1,
      MetaException o2)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public drop_schema_version_result(drop_schema_version_result other) {
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public drop_schema_version_result deepCopy() {
      return new drop_schema_version_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof drop_schema_version_result)
        return this.equals((drop_schema_version_result)that);
      return false;
    }

    public boolean equals(drop_schema_version_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(drop_schema_version_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("drop_schema_version_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class drop_schema_version_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_schema_version_resultStandardScheme getScheme() {
        return new drop_schema_version_resultStandardScheme();
      }
    }

    private static class drop_schema_version_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<drop_schema_version_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, drop_schema_version_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, drop_schema_version_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class drop_schema_version_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public drop_schema_version_resultTupleScheme getScheme() {
        return new drop_schema_version_resultTupleScheme();
      }
    }

    private static class drop_schema_version_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<drop_schema_version_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, drop_schema_version_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, drop_schema_version_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_schemas_by_cols_args implements org.apache.thrift.TBase<get_schemas_by_cols_args, get_schemas_by_cols_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_schemas_by_cols_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_schemas_by_cols_args");

    private static final org.apache.thrift.protocol.TField RQST_FIELD_DESC = new org.apache.thrift.protocol.TField("rqst", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_schemas_by_cols_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_schemas_by_cols_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable FindSchemasByColsRqst rqst; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      RQST((short)1, "rqst");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // RQST
            return RQST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.RQST, new org.apache.thrift.meta_data.FieldMetaData("rqst", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, FindSchemasByColsRqst.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_schemas_by_cols_args.class, metaDataMap);
    }

    public get_schemas_by_cols_args() {
    }

    public get_schemas_by_cols_args(
      FindSchemasByColsRqst rqst)
    {
      this();
      this.rqst = rqst;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_schemas_by_cols_args(get_schemas_by_cols_args other) {
      if (other.isSetRqst()) {
        this.rqst = new FindSchemasByColsRqst(other.rqst);
      }
    }

    public get_schemas_by_cols_args deepCopy() {
      return new get_schemas_by_cols_args(this);
    }

    @Override
    public void clear() {
      this.rqst = null;
    }

    @org.apache.thrift.annotation.Nullable
    public FindSchemasByColsRqst getRqst() {
      return this.rqst;
    }

    public void setRqst(@org.apache.thrift.annotation.Nullable FindSchemasByColsRqst rqst) {
      this.rqst = rqst;
    }

    public void unsetRqst() {
      this.rqst = null;
    }

    /** Returns true if field rqst is set (has been assigned a value) and false otherwise */
    public boolean isSetRqst() {
      return this.rqst != null;
    }

    public void setRqstIsSet(boolean value) {
      if (!value) {
        this.rqst = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case RQST:
        if (value == null) {
          unsetRqst();
        } else {
          setRqst((FindSchemasByColsRqst)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case RQST:
        return getRqst();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case RQST:
        return isSetRqst();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_schemas_by_cols_args)
        return this.equals((get_schemas_by_cols_args)that);
      return false;
    }

    public boolean equals(get_schemas_by_cols_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_rqst = true && this.isSetRqst();
      boolean that_present_rqst = true && that.isSetRqst();
      if (this_present_rqst || that_present_rqst) {
        if (!(this_present_rqst && that_present_rqst))
          return false;
        if (!this.rqst.equals(that.rqst))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRqst()) ? 131071 : 524287);
      if (isSetRqst())
        hashCode = hashCode * 8191 + rqst.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_schemas_by_cols_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRqst(), other.isSetRqst());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRqst()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rqst, other.rqst);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_schemas_by_cols_args(");
      boolean first = true;

      sb.append("rqst:");
      if (this.rqst == null) {
        sb.append("null");
      } else {
        sb.append(this.rqst);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (rqst != null) {
        rqst.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_schemas_by_cols_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_schemas_by_cols_argsStandardScheme getScheme() {
        return new get_schemas_by_cols_argsStandardScheme();
      }
    }

    private static class get_schemas_by_cols_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_schemas_by_cols_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_schemas_by_cols_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // RQST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.rqst = new FindSchemasByColsRqst();
                struct.rqst.read(iprot);
                struct.setRqstIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_schemas_by_cols_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.rqst != null) {
          oprot.writeFieldBegin(RQST_FIELD_DESC);
          struct.rqst.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_schemas_by_cols_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_schemas_by_cols_argsTupleScheme getScheme() {
        return new get_schemas_by_cols_argsTupleScheme();
      }
    }

    private static class get_schemas_by_cols_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_schemas_by_cols_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_schemas_by_cols_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRqst()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRqst()) {
          struct.rqst.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_schemas_by_cols_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.rqst = new FindSchemasByColsRqst();
          struct.rqst.read(iprot);
          struct.setRqstIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_schemas_by_cols_result implements org.apache.thrift.TBase<get_schemas_by_cols_result, get_schemas_by_cols_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_schemas_by_cols_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_schemas_by_cols_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_schemas_by_cols_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_schemas_by_cols_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable FindSchemasByColsResp success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, FindSchemasByColsResp.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_schemas_by_cols_result.class, metaDataMap);
    }

    public get_schemas_by_cols_result() {
    }

    public get_schemas_by_cols_result(
      FindSchemasByColsResp success,
      MetaException o1)
    {
      this();
      this.success = success;
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_schemas_by_cols_result(get_schemas_by_cols_result other) {
      if (other.isSetSuccess()) {
        this.success = new FindSchemasByColsResp(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public get_schemas_by_cols_result deepCopy() {
      return new get_schemas_by_cols_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public FindSchemasByColsResp getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable FindSchemasByColsResp success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((FindSchemasByColsResp)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_schemas_by_cols_result)
        return this.equals((get_schemas_by_cols_result)that);
      return false;
    }

    public boolean equals(get_schemas_by_cols_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_schemas_by_cols_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_schemas_by_cols_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_schemas_by_cols_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_schemas_by_cols_resultStandardScheme getScheme() {
        return new get_schemas_by_cols_resultStandardScheme();
      }
    }

    private static class get_schemas_by_cols_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_schemas_by_cols_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_schemas_by_cols_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new FindSchemasByColsResp();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_schemas_by_cols_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_schemas_by_cols_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_schemas_by_cols_resultTupleScheme getScheme() {
        return new get_schemas_by_cols_resultTupleScheme();
      }
    }

    private static class get_schemas_by_cols_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_schemas_by_cols_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_schemas_by_cols_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_schemas_by_cols_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.success = new FindSchemasByColsResp();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class map_schema_version_to_serde_args implements org.apache.thrift.TBase<map_schema_version_to_serde_args, map_schema_version_to_serde_args._Fields>, java.io.Serializable, Cloneable, Comparable<map_schema_version_to_serde_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("map_schema_version_to_serde_args");

    private static final org.apache.thrift.protocol.TField RQST_FIELD_DESC = new org.apache.thrift.protocol.TField("rqst", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new map_schema_version_to_serde_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new map_schema_version_to_serde_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable MapSchemaVersionToSerdeRequest rqst; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      RQST((short)1, "rqst");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // RQST
            return RQST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.RQST, new org.apache.thrift.meta_data.FieldMetaData("rqst", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MapSchemaVersionToSerdeRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(map_schema_version_to_serde_args.class, metaDataMap);
    }

    public map_schema_version_to_serde_args() {
    }

    public map_schema_version_to_serde_args(
      MapSchemaVersionToSerdeRequest rqst)
    {
      this();
      this.rqst = rqst;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public map_schema_version_to_serde_args(map_schema_version_to_serde_args other) {
      if (other.isSetRqst()) {
        this.rqst = new MapSchemaVersionToSerdeRequest(other.rqst);
      }
    }

    public map_schema_version_to_serde_args deepCopy() {
      return new map_schema_version_to_serde_args(this);
    }

    @Override
    public void clear() {
      this.rqst = null;
    }

    @org.apache.thrift.annotation.Nullable
    public MapSchemaVersionToSerdeRequest getRqst() {
      return this.rqst;
    }

    public void setRqst(@org.apache.thrift.annotation.Nullable MapSchemaVersionToSerdeRequest rqst) {
      this.rqst = rqst;
    }

    public void unsetRqst() {
      this.rqst = null;
    }

    /** Returns true if field rqst is set (has been assigned a value) and false otherwise */
    public boolean isSetRqst() {
      return this.rqst != null;
    }

    public void setRqstIsSet(boolean value) {
      if (!value) {
        this.rqst = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case RQST:
        if (value == null) {
          unsetRqst();
        } else {
          setRqst((MapSchemaVersionToSerdeRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case RQST:
        return getRqst();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case RQST:
        return isSetRqst();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof map_schema_version_to_serde_args)
        return this.equals((map_schema_version_to_serde_args)that);
      return false;
    }

    public boolean equals(map_schema_version_to_serde_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_rqst = true && this.isSetRqst();
      boolean that_present_rqst = true && that.isSetRqst();
      if (this_present_rqst || that_present_rqst) {
        if (!(this_present_rqst && that_present_rqst))
          return false;
        if (!this.rqst.equals(that.rqst))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRqst()) ? 131071 : 524287);
      if (isSetRqst())
        hashCode = hashCode * 8191 + rqst.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(map_schema_version_to_serde_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRqst(), other.isSetRqst());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRqst()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rqst, other.rqst);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("map_schema_version_to_serde_args(");
      boolean first = true;

      sb.append("rqst:");
      if (this.rqst == null) {
        sb.append("null");
      } else {
        sb.append(this.rqst);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (rqst != null) {
        rqst.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class map_schema_version_to_serde_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public map_schema_version_to_serde_argsStandardScheme getScheme() {
        return new map_schema_version_to_serde_argsStandardScheme();
      }
    }

    private static class map_schema_version_to_serde_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<map_schema_version_to_serde_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, map_schema_version_to_serde_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // RQST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.rqst = new MapSchemaVersionToSerdeRequest();
                struct.rqst.read(iprot);
                struct.setRqstIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, map_schema_version_to_serde_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.rqst != null) {
          oprot.writeFieldBegin(RQST_FIELD_DESC);
          struct.rqst.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class map_schema_version_to_serde_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public map_schema_version_to_serde_argsTupleScheme getScheme() {
        return new map_schema_version_to_serde_argsTupleScheme();
      }
    }

    private static class map_schema_version_to_serde_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<map_schema_version_to_serde_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, map_schema_version_to_serde_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRqst()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRqst()) {
          struct.rqst.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, map_schema_version_to_serde_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.rqst = new MapSchemaVersionToSerdeRequest();
          struct.rqst.read(iprot);
          struct.setRqstIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class map_schema_version_to_serde_result implements org.apache.thrift.TBase<map_schema_version_to_serde_result, map_schema_version_to_serde_result._Fields>, java.io.Serializable, Cloneable, Comparable<map_schema_version_to_serde_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("map_schema_version_to_serde_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new map_schema_version_to_serde_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new map_schema_version_to_serde_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(map_schema_version_to_serde_result.class, metaDataMap);
    }

    public map_schema_version_to_serde_result() {
    }

    public map_schema_version_to_serde_result(
      NoSuchObjectException o1,
      MetaException o2)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public map_schema_version_to_serde_result(map_schema_version_to_serde_result other) {
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public map_schema_version_to_serde_result deepCopy() {
      return new map_schema_version_to_serde_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof map_schema_version_to_serde_result)
        return this.equals((map_schema_version_to_serde_result)that);
      return false;
    }

    public boolean equals(map_schema_version_to_serde_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(map_schema_version_to_serde_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("map_schema_version_to_serde_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class map_schema_version_to_serde_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public map_schema_version_to_serde_resultStandardScheme getScheme() {
        return new map_schema_version_to_serde_resultStandardScheme();
      }
    }

    private static class map_schema_version_to_serde_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<map_schema_version_to_serde_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, map_schema_version_to_serde_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, map_schema_version_to_serde_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class map_schema_version_to_serde_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public map_schema_version_to_serde_resultTupleScheme getScheme() {
        return new map_schema_version_to_serde_resultTupleScheme();
      }
    }

    private static class map_schema_version_to_serde_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<map_schema_version_to_serde_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, map_schema_version_to_serde_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, map_schema_version_to_serde_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class set_schema_version_state_args implements org.apache.thrift.TBase<set_schema_version_state_args, set_schema_version_state_args._Fields>, java.io.Serializable, Cloneable, Comparable<set_schema_version_state_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("set_schema_version_state_args");

    private static final org.apache.thrift.protocol.TField RQST_FIELD_DESC = new org.apache.thrift.protocol.TField("rqst", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new set_schema_version_state_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new set_schema_version_state_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable SetSchemaVersionStateRequest rqst; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      RQST((short)1, "rqst");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // RQST
            return RQST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.RQST, new org.apache.thrift.meta_data.FieldMetaData("rqst", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SetSchemaVersionStateRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(set_schema_version_state_args.class, metaDataMap);
    }

    public set_schema_version_state_args() {
    }

    public set_schema_version_state_args(
      SetSchemaVersionStateRequest rqst)
    {
      this();
      this.rqst = rqst;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public set_schema_version_state_args(set_schema_version_state_args other) {
      if (other.isSetRqst()) {
        this.rqst = new SetSchemaVersionStateRequest(other.rqst);
      }
    }

    public set_schema_version_state_args deepCopy() {
      return new set_schema_version_state_args(this);
    }

    @Override
    public void clear() {
      this.rqst = null;
    }

    @org.apache.thrift.annotation.Nullable
    public SetSchemaVersionStateRequest getRqst() {
      return this.rqst;
    }

    public void setRqst(@org.apache.thrift.annotation.Nullable SetSchemaVersionStateRequest rqst) {
      this.rqst = rqst;
    }

    public void unsetRqst() {
      this.rqst = null;
    }

    /** Returns true if field rqst is set (has been assigned a value) and false otherwise */
    public boolean isSetRqst() {
      return this.rqst != null;
    }

    public void setRqstIsSet(boolean value) {
      if (!value) {
        this.rqst = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case RQST:
        if (value == null) {
          unsetRqst();
        } else {
          setRqst((SetSchemaVersionStateRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case RQST:
        return getRqst();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case RQST:
        return isSetRqst();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof set_schema_version_state_args)
        return this.equals((set_schema_version_state_args)that);
      return false;
    }

    public boolean equals(set_schema_version_state_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_rqst = true && this.isSetRqst();
      boolean that_present_rqst = true && that.isSetRqst();
      if (this_present_rqst || that_present_rqst) {
        if (!(this_present_rqst && that_present_rqst))
          return false;
        if (!this.rqst.equals(that.rqst))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRqst()) ? 131071 : 524287);
      if (isSetRqst())
        hashCode = hashCode * 8191 + rqst.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(set_schema_version_state_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRqst(), other.isSetRqst());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRqst()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rqst, other.rqst);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("set_schema_version_state_args(");
      boolean first = true;

      sb.append("rqst:");
      if (this.rqst == null) {
        sb.append("null");
      } else {
        sb.append(this.rqst);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (rqst != null) {
        rqst.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class set_schema_version_state_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public set_schema_version_state_argsStandardScheme getScheme() {
        return new set_schema_version_state_argsStandardScheme();
      }
    }

    private static class set_schema_version_state_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<set_schema_version_state_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, set_schema_version_state_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // RQST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.rqst = new SetSchemaVersionStateRequest();
                struct.rqst.read(iprot);
                struct.setRqstIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, set_schema_version_state_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.rqst != null) {
          oprot.writeFieldBegin(RQST_FIELD_DESC);
          struct.rqst.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class set_schema_version_state_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public set_schema_version_state_argsTupleScheme getScheme() {
        return new set_schema_version_state_argsTupleScheme();
      }
    }

    private static class set_schema_version_state_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<set_schema_version_state_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, set_schema_version_state_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRqst()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRqst()) {
          struct.rqst.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, set_schema_version_state_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.rqst = new SetSchemaVersionStateRequest();
          struct.rqst.read(iprot);
          struct.setRqstIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class set_schema_version_state_result implements org.apache.thrift.TBase<set_schema_version_state_result, set_schema_version_state_result._Fields>, java.io.Serializable, Cloneable, Comparable<set_schema_version_state_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("set_schema_version_state_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);
    private static final org.apache.thrift.protocol.TField O3_FIELD_DESC = new org.apache.thrift.protocol.TField("o3", org.apache.thrift.protocol.TType.STRUCT, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new set_schema_version_state_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new set_schema_version_state_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable InvalidOperationException o2; // required
    private @org.apache.thrift.annotation.Nullable MetaException o3; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2"),
      O3((short)3, "o3");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          case 3: // O3
            return O3;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidOperationException.class)));
      tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(set_schema_version_state_result.class, metaDataMap);
    }

    public set_schema_version_state_result() {
    }

    public set_schema_version_state_result(
      NoSuchObjectException o1,
      InvalidOperationException o2,
      MetaException o3)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
      this.o3 = o3;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public set_schema_version_state_result(set_schema_version_state_result other) {
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new InvalidOperationException(other.o2);
      }
      if (other.isSetO3()) {
        this.o3 = new MetaException(other.o3);
      }
    }

    public set_schema_version_state_result deepCopy() {
      return new set_schema_version_state_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
      this.o3 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public InvalidOperationException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable InvalidOperationException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO3() {
      return this.o3;
    }

    public void setO3(@org.apache.thrift.annotation.Nullable MetaException o3) {
      this.o3 = o3;
    }

    public void unsetO3() {
      this.o3 = null;
    }

    /** Returns true if field o3 is set (has been assigned a value) and false otherwise */
    public boolean isSetO3() {
      return this.o3 != null;
    }

    public void setO3IsSet(boolean value) {
      if (!value) {
        this.o3 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((InvalidOperationException)value);
        }
        break;

      case O3:
        if (value == null) {
          unsetO3();
        } else {
          setO3((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      case O3:
        return getO3();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      case O3:
        return isSetO3();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof set_schema_version_state_result)
        return this.equals((set_schema_version_state_result)that);
      return false;
    }

    public boolean equals(set_schema_version_state_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      boolean this_present_o3 = true && this.isSetO3();
      boolean that_present_o3 = true && that.isSetO3();
      if (this_present_o3 || that_present_o3) {
        if (!(this_present_o3 && that_present_o3))
          return false;
        if (!this.o3.equals(that.o3))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      hashCode = hashCode * 8191 + ((isSetO3()) ? 131071 : 524287);
      if (isSetO3())
        hashCode = hashCode * 8191 + o3.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(set_schema_version_state_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO3(), other.isSetO3());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO3()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o3, other.o3);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("set_schema_version_state_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o3:");
      if (this.o3 == null) {
        sb.append("null");
      } else {
        sb.append(this.o3);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class set_schema_version_state_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public set_schema_version_state_resultStandardScheme getScheme() {
        return new set_schema_version_state_resultStandardScheme();
      }
    }

    private static class set_schema_version_state_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<set_schema_version_state_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, set_schema_version_state_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new InvalidOperationException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // O3
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o3 = new MetaException();
                struct.o3.read(iprot);
                struct.setO3IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, set_schema_version_state_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o3 != null) {
          oprot.writeFieldBegin(O3_FIELD_DESC);
          struct.o3.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class set_schema_version_state_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public set_schema_version_state_resultTupleScheme getScheme() {
        return new set_schema_version_state_resultTupleScheme();
      }
    }

    private static class set_schema_version_state_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<set_schema_version_state_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, set_schema_version_state_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        if (struct.isSetO3()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
        if (struct.isSetO3()) {
          struct.o3.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, set_schema_version_state_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new InvalidOperationException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o3 = new MetaException();
          struct.o3.read(iprot);
          struct.setO3IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_serde_args implements org.apache.thrift.TBase<add_serde_args, add_serde_args._Fields>, java.io.Serializable, Cloneable, Comparable<add_serde_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("add_serde_args");

    private static final org.apache.thrift.protocol.TField SERDE_FIELD_DESC = new org.apache.thrift.protocol.TField("serde", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new add_serde_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new add_serde_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable SerDeInfo serde; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SERDE((short)1, "serde");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // SERDE
            return SERDE;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SERDE, new org.apache.thrift.meta_data.FieldMetaData("serde", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SerDeInfo.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(add_serde_args.class, metaDataMap);
    }

    public add_serde_args() {
    }

    public add_serde_args(
      SerDeInfo serde)
    {
      this();
      this.serde = serde;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public add_serde_args(add_serde_args other) {
      if (other.isSetSerde()) {
        this.serde = new SerDeInfo(other.serde);
      }
    }

    public add_serde_args deepCopy() {
      return new add_serde_args(this);
    }

    @Override
    public void clear() {
      this.serde = null;
    }

    @org.apache.thrift.annotation.Nullable
    public SerDeInfo getSerde() {
      return this.serde;
    }

    public void setSerde(@org.apache.thrift.annotation.Nullable SerDeInfo serde) {
      this.serde = serde;
    }

    public void unsetSerde() {
      this.serde = null;
    }

    /** Returns true if field serde is set (has been assigned a value) and false otherwise */
    public boolean isSetSerde() {
      return this.serde != null;
    }

    public void setSerdeIsSet(boolean value) {
      if (!value) {
        this.serde = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SERDE:
        if (value == null) {
          unsetSerde();
        } else {
          setSerde((SerDeInfo)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SERDE:
        return getSerde();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SERDE:
        return isSetSerde();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof add_serde_args)
        return this.equals((add_serde_args)that);
      return false;
    }

    public boolean equals(add_serde_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_serde = true && this.isSetSerde();
      boolean that_present_serde = true && that.isSetSerde();
      if (this_present_serde || that_present_serde) {
        if (!(this_present_serde && that_present_serde))
          return false;
        if (!this.serde.equals(that.serde))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSerde()) ? 131071 : 524287);
      if (isSetSerde())
        hashCode = hashCode * 8191 + serde.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(add_serde_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSerde(), other.isSetSerde());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSerde()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.serde, other.serde);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("add_serde_args(");
      boolean first = true;

      sb.append("serde:");
      if (this.serde == null) {
        sb.append("null");
      } else {
        sb.append(this.serde);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (serde != null) {
        serde.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class add_serde_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_serde_argsStandardScheme getScheme() {
        return new add_serde_argsStandardScheme();
      }
    }

    private static class add_serde_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<add_serde_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, add_serde_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // SERDE
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.serde = new SerDeInfo();
                struct.serde.read(iprot);
                struct.setSerdeIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, add_serde_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.serde != null) {
          oprot.writeFieldBegin(SERDE_FIELD_DESC);
          struct.serde.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class add_serde_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_serde_argsTupleScheme getScheme() {
        return new add_serde_argsTupleScheme();
      }
    }

    private static class add_serde_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<add_serde_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, add_serde_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSerde()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSerde()) {
          struct.serde.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, add_serde_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.serde = new SerDeInfo();
          struct.serde.read(iprot);
          struct.setSerdeIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_serde_result implements org.apache.thrift.TBase<add_serde_result, add_serde_result._Fields>, java.io.Serializable, Cloneable, Comparable<add_serde_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("add_serde_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new add_serde_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new add_serde_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable AlreadyExistsException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AlreadyExistsException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(add_serde_result.class, metaDataMap);
    }

    public add_serde_result() {
    }

    public add_serde_result(
      AlreadyExistsException o1,
      MetaException o2)
    {
      this();
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public add_serde_result(add_serde_result other) {
      if (other.isSetO1()) {
        this.o1 = new AlreadyExistsException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public add_serde_result deepCopy() {
      return new add_serde_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public AlreadyExistsException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable AlreadyExistsException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((AlreadyExistsException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof add_serde_result)
        return this.equals((add_serde_result)that);
      return false;
    }

    public boolean equals(add_serde_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(add_serde_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("add_serde_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class add_serde_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_serde_resultStandardScheme getScheme() {
        return new add_serde_resultStandardScheme();
      }
    }

    private static class add_serde_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<add_serde_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, add_serde_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new AlreadyExistsException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, add_serde_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class add_serde_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_serde_resultTupleScheme getScheme() {
        return new add_serde_resultTupleScheme();
      }
    }

    private static class add_serde_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<add_serde_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, add_serde_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        if (struct.isSetO2()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, add_serde_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          struct.o1 = new AlreadyExistsException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(1)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_serde_args implements org.apache.thrift.TBase<get_serde_args, get_serde_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_serde_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_serde_args");

    private static final org.apache.thrift.protocol.TField RQST_FIELD_DESC = new org.apache.thrift.protocol.TField("rqst", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_serde_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_serde_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable GetSerdeRequest rqst; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      RQST((short)1, "rqst");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // RQST
            return RQST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.RQST, new org.apache.thrift.meta_data.FieldMetaData("rqst", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetSerdeRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_serde_args.class, metaDataMap);
    }

    public get_serde_args() {
    }

    public get_serde_args(
      GetSerdeRequest rqst)
    {
      this();
      this.rqst = rqst;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_serde_args(get_serde_args other) {
      if (other.isSetRqst()) {
        this.rqst = new GetSerdeRequest(other.rqst);
      }
    }

    public get_serde_args deepCopy() {
      return new get_serde_args(this);
    }

    @Override
    public void clear() {
      this.rqst = null;
    }

    @org.apache.thrift.annotation.Nullable
    public GetSerdeRequest getRqst() {
      return this.rqst;
    }

    public void setRqst(@org.apache.thrift.annotation.Nullable GetSerdeRequest rqst) {
      this.rqst = rqst;
    }

    public void unsetRqst() {
      this.rqst = null;
    }

    /** Returns true if field rqst is set (has been assigned a value) and false otherwise */
    public boolean isSetRqst() {
      return this.rqst != null;
    }

    public void setRqstIsSet(boolean value) {
      if (!value) {
        this.rqst = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case RQST:
        if (value == null) {
          unsetRqst();
        } else {
          setRqst((GetSerdeRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case RQST:
        return getRqst();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case RQST:
        return isSetRqst();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_serde_args)
        return this.equals((get_serde_args)that);
      return false;
    }

    public boolean equals(get_serde_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_rqst = true && this.isSetRqst();
      boolean that_present_rqst = true && that.isSetRqst();
      if (this_present_rqst || that_present_rqst) {
        if (!(this_present_rqst && that_present_rqst))
          return false;
        if (!this.rqst.equals(that.rqst))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRqst()) ? 131071 : 524287);
      if (isSetRqst())
        hashCode = hashCode * 8191 + rqst.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_serde_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRqst(), other.isSetRqst());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRqst()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rqst, other.rqst);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_serde_args(");
      boolean first = true;

      sb.append("rqst:");
      if (this.rqst == null) {
        sb.append("null");
      } else {
        sb.append(this.rqst);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (rqst != null) {
        rqst.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_serde_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_serde_argsStandardScheme getScheme() {
        return new get_serde_argsStandardScheme();
      }
    }

    private static class get_serde_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_serde_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_serde_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // RQST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.rqst = new GetSerdeRequest();
                struct.rqst.read(iprot);
                struct.setRqstIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_serde_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.rqst != null) {
          oprot.writeFieldBegin(RQST_FIELD_DESC);
          struct.rqst.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_serde_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_serde_argsTupleScheme getScheme() {
        return new get_serde_argsTupleScheme();
      }
    }

    private static class get_serde_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_serde_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_serde_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRqst()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRqst()) {
          struct.rqst.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_serde_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.rqst = new GetSerdeRequest();
          struct.rqst.read(iprot);
          struct.setRqstIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_serde_result implements org.apache.thrift.TBase<get_serde_result, get_serde_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_serde_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_serde_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);
    private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_serde_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_serde_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable SerDeInfo success; // required
    private @org.apache.thrift.annotation.Nullable NoSuchObjectException o1; // required
    private @org.apache.thrift.annotation.Nullable MetaException o2; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1"),
      O2((short)2, "o2");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          case 2: // O2
            return O2;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SerDeInfo.class)));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
      tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_serde_result.class, metaDataMap);
    }

    public get_serde_result() {
    }

    public get_serde_result(
      SerDeInfo success,
      NoSuchObjectException o1,
      MetaException o2)
    {
      this();
      this.success = success;
      this.o1 = o1;
      this.o2 = o2;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_serde_result(get_serde_result other) {
      if (other.isSetSuccess()) {
        this.success = new SerDeInfo(other.success);
      }
      if (other.isSetO1()) {
        this.o1 = new NoSuchObjectException(other.o1);
      }
      if (other.isSetO2()) {
        this.o2 = new MetaException(other.o2);
      }
    }

    public get_serde_result deepCopy() {
      return new get_serde_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
      this.o2 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public SerDeInfo getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable SerDeInfo success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public NoSuchObjectException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable NoSuchObjectException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO2() {
      return this.o2;
    }

    public void setO2(@org.apache.thrift.annotation.Nullable MetaException o2) {
      this.o2 = o2;
    }

    public void unsetO2() {
      this.o2 = null;
    }

    /** Returns true if field o2 is set (has been assigned a value) and false otherwise */
    public boolean isSetO2() {
      return this.o2 != null;
    }

    public void setO2IsSet(boolean value) {
      if (!value) {
        this.o2 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((SerDeInfo)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((NoSuchObjectException)value);
        }
        break;

      case O2:
        if (value == null) {
          unsetO2();
        } else {
          setO2((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      case O2:
        return getO2();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      case O2:
        return isSetO2();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_serde_result)
        return this.equals((get_serde_result)that);
      return false;
    }

    public boolean equals(get_serde_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      boolean this_present_o2 = true && this.isSetO2();
      boolean that_present_o2 = true && that.isSetO2();
      if (this_present_o2 || that_present_o2) {
        if (!(this_present_o2 && that_present_o2))
          return false;
        if (!this.o2.equals(that.o2))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287);
      if (isSetO2())
        hashCode = hashCode * 8191 + o2.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_serde_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO2()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_serde_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o2:");
      if (this.o2 == null) {
        sb.append("null");
      } else {
        sb.append(this.o2);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_serde_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_serde_resultStandardScheme getScheme() {
        return new get_serde_resultStandardScheme();
      }
    }

    private static class get_serde_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_serde_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_serde_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new SerDeInfo();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new NoSuchObjectException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // O2
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o2 = new MetaException();
                struct.o2.read(iprot);
                struct.setO2IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_serde_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        if (struct.o2 != null) {
          oprot.writeFieldBegin(O2_FIELD_DESC);
          struct.o2.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_serde_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_serde_resultTupleScheme getScheme() {
        return new get_serde_resultTupleScheme();
      }
    }

    private static class get_serde_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_serde_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_serde_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        if (struct.isSetO2()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
        if (struct.isSetO2()) {
          struct.o2.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_serde_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.success = new SerDeInfo();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new NoSuchObjectException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
        if (incoming.get(2)) {
          struct.o2 = new MetaException();
          struct.o2.read(iprot);
          struct.setO2IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_lock_materialization_rebuild_args implements org.apache.thrift.TBase<get_lock_materialization_rebuild_args, get_lock_materialization_rebuild_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_lock_materialization_rebuild_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_lock_materialization_rebuild_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("dbName", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField TXN_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("txnId", org.apache.thrift.protocol.TType.I64, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_lock_materialization_rebuild_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_lock_materialization_rebuild_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String dbName; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tableName; // required
    private long txnId; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "dbName"),
      TABLE_NAME((short)2, "tableName"),
      TXN_ID((short)3, "txnId");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // TXN_ID
            return TXN_ID;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __TXNID_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("dbName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TXN_ID, new org.apache.thrift.meta_data.FieldMetaData("txnId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_lock_materialization_rebuild_args.class, metaDataMap);
    }

    public get_lock_materialization_rebuild_args() {
    }

    public get_lock_materialization_rebuild_args(
      java.lang.String dbName,
      java.lang.String tableName,
      long txnId)
    {
      this();
      this.dbName = dbName;
      this.tableName = tableName;
      this.txnId = txnId;
      setTxnIdIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_lock_materialization_rebuild_args(get_lock_materialization_rebuild_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetDbName()) {
        this.dbName = other.dbName;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
      this.txnId = other.txnId;
    }

    public get_lock_materialization_rebuild_args deepCopy() {
      return new get_lock_materialization_rebuild_args(this);
    }

    @Override
    public void clear() {
      this.dbName = null;
      this.tableName = null;
      setTxnIdIsSet(false);
      this.txnId = 0;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDbName() {
      return this.dbName;
    }

    public void setDbName(@org.apache.thrift.annotation.Nullable java.lang.String dbName) {
      this.dbName = dbName;
    }

    public void unsetDbName() {
      this.dbName = null;
    }

    /** Returns true if field dbName is set (has been assigned a value) and false otherwise */
    public boolean isSetDbName() {
      return this.dbName != null;
    }

    public void setDbNameIsSet(boolean value) {
      if (!value) {
        this.dbName = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTableName() {
      return this.tableName;
    }

    public void setTableName(@org.apache.thrift.annotation.Nullable java.lang.String tableName) {
      this.tableName = tableName;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

    /** Returns true if field tableName is set (has been assigned a value) and false otherwise */
    public boolean isSetTableName() {
      return this.tableName != null;
    }

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public long getTxnId() {
      return this.txnId;
    }

    public void setTxnId(long txnId) {
      this.txnId = txnId;
      setTxnIdIsSet(true);
    }

    public void unsetTxnId() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __TXNID_ISSET_ID);
    }

    /** Returns true if field txnId is set (has been assigned a value) and false otherwise */
    public boolean isSetTxnId() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __TXNID_ISSET_ID);
    }

    public void setTxnIdIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __TXNID_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDbName();
        } else {
          setDbName((java.lang.String)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((java.lang.String)value);
        }
        break;

      case TXN_ID:
        if (value == null) {
          unsetTxnId();
        } else {
          setTxnId((java.lang.Long)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDbName();

      case TABLE_NAME:
        return getTableName();

      case TXN_ID:
        return getTxnId();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDbName();
      case TABLE_NAME:
        return isSetTableName();
      case TXN_ID:
        return isSetTxnId();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_lock_materialization_rebuild_args)
        return this.equals((get_lock_materialization_rebuild_args)that);
      return false;
    }

    public boolean equals(get_lock_materialization_rebuild_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_dbName = true && this.isSetDbName();
      boolean that_present_dbName = true && that.isSetDbName();
      if (this_present_dbName || that_present_dbName) {
        if (!(this_present_dbName && that_present_dbName))
          return false;
        if (!this.dbName.equals(that.dbName))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      boolean this_present_txnId = true;
      boolean that_present_txnId = true;
      if (this_present_txnId || that_present_txnId) {
        if (!(this_present_txnId && that_present_txnId))
          return false;
        if (this.txnId != that.txnId)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDbName()) ? 131071 : 524287);
      if (isSetDbName())
        hashCode = hashCode * 8191 + dbName.hashCode();

      hashCode = hashCode * 8191 + ((isSetTableName()) ? 131071 : 524287);
      if (isSetTableName())
        hashCode = hashCode * 8191 + tableName.hashCode();

      hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(txnId);

      return hashCode;
    }

    @Override
    public int compareTo(get_lock_materialization_rebuild_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDbName(), other.isSetDbName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDbName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dbName, other.dbName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTableName(), other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTxnId(), other.isSetTxnId());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTxnId()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.txnId, other.txnId);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_lock_materialization_rebuild_args(");
      boolean first = true;

      sb.append("dbName:");
      if (this.dbName == null) {
        sb.append("null");
      } else {
        sb.append(this.dbName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("txnId:");
      sb.append(this.txnId);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_lock_materialization_rebuild_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_lock_materialization_rebuild_argsStandardScheme getScheme() {
        return new get_lock_materialization_rebuild_argsStandardScheme();
      }
    }

    private static class get_lock_materialization_rebuild_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_lock_materialization_rebuild_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_lock_materialization_rebuild_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.dbName = iprot.readString();
                struct.setDbNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // TXN_ID
              if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
                struct.txnId = iprot.readI64();
                struct.setTxnIdIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_lock_materialization_rebuild_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.dbName != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.dbName);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(TXN_ID_FIELD_DESC);
        oprot.writeI64(struct.txnId);
        oprot.writeFieldEnd();
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_lock_materialization_rebuild_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_lock_materialization_rebuild_argsTupleScheme getScheme() {
        return new get_lock_materialization_rebuild_argsTupleScheme();
      }
    }

    private static class get_lock_materialization_rebuild_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_lock_materialization_rebuild_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_lock_materialization_rebuild_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDbName()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        if (struct.isSetTxnId()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetDbName()) {
          oprot.writeString(struct.dbName);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
        if (struct.isSetTxnId()) {
          oprot.writeI64(struct.txnId);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_lock_materialization_rebuild_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.dbName = iprot.readString();
          struct.setDbNameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.txnId = iprot.readI64();
          struct.setTxnIdIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_lock_materialization_rebuild_result implements org.apache.thrift.TBase<get_lock_materialization_rebuild_result, get_lock_materialization_rebuild_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_lock_materialization_rebuild_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_lock_materialization_rebuild_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_lock_materialization_rebuild_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_lock_materialization_rebuild_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable LockResponse success; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, LockResponse.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_lock_materialization_rebuild_result.class, metaDataMap);
    }

    public get_lock_materialization_rebuild_result() {
    }

    public get_lock_materialization_rebuild_result(
      LockResponse success)
    {
      this();
      this.success = success;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_lock_materialization_rebuild_result(get_lock_materialization_rebuild_result other) {
      if (other.isSetSuccess()) {
        this.success = new LockResponse(other.success);
      }
    }

    public get_lock_materialization_rebuild_result deepCopy() {
      return new get_lock_materialization_rebuild_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
    }

    @org.apache.thrift.annotation.Nullable
    public LockResponse getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable LockResponse success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((LockResponse)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_lock_materialization_rebuild_result)
        return this.equals((get_lock_materialization_rebuild_result)that);
      return false;
    }

    public boolean equals(get_lock_materialization_rebuild_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_lock_materialization_rebuild_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_lock_materialization_rebuild_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (success != null) {
        success.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_lock_materialization_rebuild_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_lock_materialization_rebuild_resultStandardScheme getScheme() {
        return new get_lock_materialization_rebuild_resultStandardScheme();
      }
    }

    private static class get_lock_materialization_rebuild_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_lock_materialization_rebuild_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_lock_materialization_rebuild_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.success = new LockResponse();
                struct.success.read(iprot);
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_lock_materialization_rebuild_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          struct.success.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_lock_materialization_rebuild_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_lock_materialization_rebuild_resultTupleScheme getScheme() {
        return new get_lock_materialization_rebuild_resultTupleScheme();
      }
    }

    private static class get_lock_materialization_rebuild_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_lock_materialization_rebuild_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_lock_materialization_rebuild_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSuccess()) {
          struct.success.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_lock_materialization_rebuild_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.success = new LockResponse();
          struct.success.read(iprot);
          struct.setSuccessIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class heartbeat_lock_materialization_rebuild_args implements org.apache.thrift.TBase<heartbeat_lock_materialization_rebuild_args, heartbeat_lock_materialization_rebuild_args._Fields>, java.io.Serializable, Cloneable, Comparable<heartbeat_lock_materialization_rebuild_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("heartbeat_lock_materialization_rebuild_args");

    private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("dbName", org.apache.thrift.protocol.TType.STRING, (short)1);
    private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2);
    private static final org.apache.thrift.protocol.TField TXN_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("txnId", org.apache.thrift.protocol.TType.I64, (short)3);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new heartbeat_lock_materialization_rebuild_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new heartbeat_lock_materialization_rebuild_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.lang.String dbName; // required
    private @org.apache.thrift.annotation.Nullable java.lang.String tableName; // required
    private long txnId; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      DB_NAME((short)1, "dbName"),
      TABLE_NAME((short)2, "tableName"),
      TXN_ID((short)3, "txnId");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // DB_NAME
            return DB_NAME;
          case 2: // TABLE_NAME
            return TABLE_NAME;
          case 3: // TXN_ID
            return TXN_ID;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __TXNID_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("dbName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
      tmpMap.put(_Fields.TXN_ID, new org.apache.thrift.meta_data.FieldMetaData("txnId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(heartbeat_lock_materialization_rebuild_args.class, metaDataMap);
    }

    public heartbeat_lock_materialization_rebuild_args() {
    }

    public heartbeat_lock_materialization_rebuild_args(
      java.lang.String dbName,
      java.lang.String tableName,
      long txnId)
    {
      this();
      this.dbName = dbName;
      this.tableName = tableName;
      this.txnId = txnId;
      setTxnIdIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public heartbeat_lock_materialization_rebuild_args(heartbeat_lock_materialization_rebuild_args other) {
      __isset_bitfield = other.__isset_bitfield;
      if (other.isSetDbName()) {
        this.dbName = other.dbName;
      }
      if (other.isSetTableName()) {
        this.tableName = other.tableName;
      }
      this.txnId = other.txnId;
    }

    public heartbeat_lock_materialization_rebuild_args deepCopy() {
      return new heartbeat_lock_materialization_rebuild_args(this);
    }

    @Override
    public void clear() {
      this.dbName = null;
      this.tableName = null;
      setTxnIdIsSet(false);
      this.txnId = 0;
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getDbName() {
      return this.dbName;
    }

    public void setDbName(@org.apache.thrift.annotation.Nullable java.lang.String dbName) {
      this.dbName = dbName;
    }

    public void unsetDbName() {
      this.dbName = null;
    }

    /** Returns true if field dbName is set (has been assigned a value) and false otherwise */
    public boolean isSetDbName() {
      return this.dbName != null;
    }

    public void setDbNameIsSet(boolean value) {
      if (!value) {
        this.dbName = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.String getTableName() {
      return this.tableName;
    }

    public void setTableName(@org.apache.thrift.annotation.Nullable java.lang.String tableName) {
      this.tableName = tableName;
    }

    public void unsetTableName() {
      this.tableName = null;
    }

    /** Returns true if field tableName is set (has been assigned a value) and false otherwise */
    public boolean isSetTableName() {
      return this.tableName != null;
    }

    public void setTableNameIsSet(boolean value) {
      if (!value) {
        this.tableName = null;
      }
    }

    public long getTxnId() {
      return this.txnId;
    }

    public void setTxnId(long txnId) {
      this.txnId = txnId;
      setTxnIdIsSet(true);
    }

    public void unsetTxnId() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __TXNID_ISSET_ID);
    }

    /** Returns true if field txnId is set (has been assigned a value) and false otherwise */
    public boolean isSetTxnId() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __TXNID_ISSET_ID);
    }

    public void setTxnIdIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __TXNID_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case DB_NAME:
        if (value == null) {
          unsetDbName();
        } else {
          setDbName((java.lang.String)value);
        }
        break;

      case TABLE_NAME:
        if (value == null) {
          unsetTableName();
        } else {
          setTableName((java.lang.String)value);
        }
        break;

      case TXN_ID:
        if (value == null) {
          unsetTxnId();
        } else {
          setTxnId((java.lang.Long)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case DB_NAME:
        return getDbName();

      case TABLE_NAME:
        return getTableName();

      case TXN_ID:
        return getTxnId();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case DB_NAME:
        return isSetDbName();
      case TABLE_NAME:
        return isSetTableName();
      case TXN_ID:
        return isSetTxnId();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof heartbeat_lock_materialization_rebuild_args)
        return this.equals((heartbeat_lock_materialization_rebuild_args)that);
      return false;
    }

    public boolean equals(heartbeat_lock_materialization_rebuild_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_dbName = true && this.isSetDbName();
      boolean that_present_dbName = true && that.isSetDbName();
      if (this_present_dbName || that_present_dbName) {
        if (!(this_present_dbName && that_present_dbName))
          return false;
        if (!this.dbName.equals(that.dbName))
          return false;
      }

      boolean this_present_tableName = true && this.isSetTableName();
      boolean that_present_tableName = true && that.isSetTableName();
      if (this_present_tableName || that_present_tableName) {
        if (!(this_present_tableName && that_present_tableName))
          return false;
        if (!this.tableName.equals(that.tableName))
          return false;
      }

      boolean this_present_txnId = true;
      boolean that_present_txnId = true;
      if (this_present_txnId || that_present_txnId) {
        if (!(this_present_txnId && that_present_txnId))
          return false;
        if (this.txnId != that.txnId)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetDbName()) ? 131071 : 524287);
      if (isSetDbName())
        hashCode = hashCode * 8191 + dbName.hashCode();

      hashCode = hashCode * 8191 + ((isSetTableName()) ? 131071 : 524287);
      if (isSetTableName())
        hashCode = hashCode * 8191 + tableName.hashCode();

      hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(txnId);

      return hashCode;
    }

    @Override
    public int compareTo(heartbeat_lock_materialization_rebuild_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetDbName(), other.isSetDbName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetDbName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dbName, other.dbName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTableName(), other.isSetTableName());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTableName()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetTxnId(), other.isSetTxnId());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetTxnId()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.txnId, other.txnId);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("heartbeat_lock_materialization_rebuild_args(");
      boolean first = true;

      sb.append("dbName:");
      if (this.dbName == null) {
        sb.append("null");
      } else {
        sb.append(this.dbName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("tableName:");
      if (this.tableName == null) {
        sb.append("null");
      } else {
        sb.append(this.tableName);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("txnId:");
      sb.append(this.txnId);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class heartbeat_lock_materialization_rebuild_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public heartbeat_lock_materialization_rebuild_argsStandardScheme getScheme() {
        return new heartbeat_lock_materialization_rebuild_argsStandardScheme();
      }
    }

    private static class heartbeat_lock_materialization_rebuild_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<heartbeat_lock_materialization_rebuild_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, heartbeat_lock_materialization_rebuild_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // DB_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.dbName = iprot.readString();
                struct.setDbNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // TABLE_NAME
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.tableName = iprot.readString();
                struct.setTableNameIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // TXN_ID
              if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
                struct.txnId = iprot.readI64();
                struct.setTxnIdIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, heartbeat_lock_materialization_rebuild_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.dbName != null) {
          oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
          oprot.writeString(struct.dbName);
          oprot.writeFieldEnd();
        }
        if (struct.tableName != null) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.tableName);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldBegin(TXN_ID_FIELD_DESC);
        oprot.writeI64(struct.txnId);
        oprot.writeFieldEnd();
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class heartbeat_lock_materialization_rebuild_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public heartbeat_lock_materialization_rebuild_argsTupleScheme getScheme() {
        return new heartbeat_lock_materialization_rebuild_argsTupleScheme();
      }
    }

    private static class heartbeat_lock_materialization_rebuild_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<heartbeat_lock_materialization_rebuild_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, heartbeat_lock_materialization_rebuild_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetDbName()) {
          optionals.set(0);
        }
        if (struct.isSetTableName()) {
          optionals.set(1);
        }
        if (struct.isSetTxnId()) {
          optionals.set(2);
        }
        oprot.writeBitSet(optionals, 3);
        if (struct.isSetDbName()) {
          oprot.writeString(struct.dbName);
        }
        if (struct.isSetTableName()) {
          oprot.writeString(struct.tableName);
        }
        if (struct.isSetTxnId()) {
          oprot.writeI64(struct.txnId);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, heartbeat_lock_materialization_rebuild_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          struct.dbName = iprot.readString();
          struct.setDbNameIsSet(true);
        }
        if (incoming.get(1)) {
          struct.tableName = iprot.readString();
          struct.setTableNameIsSet(true);
        }
        if (incoming.get(2)) {
          struct.txnId = iprot.readI64();
          struct.setTxnIdIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class heartbeat_lock_materialization_rebuild_result implements org.apache.thrift.TBase<heartbeat_lock_materialization_rebuild_result, heartbeat_lock_materialization_rebuild_result._Fields>, java.io.Serializable, Cloneable, Comparable<heartbeat_lock_materialization_rebuild_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("heartbeat_lock_materialization_rebuild_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new heartbeat_lock_materialization_rebuild_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new heartbeat_lock_materialization_rebuild_resultTupleSchemeFactory();

    private boolean success; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    private static final int __SUCCESS_ISSET_ID = 0;
    private byte __isset_bitfield = 0;
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(heartbeat_lock_materialization_rebuild_result.class, metaDataMap);
    }

    public heartbeat_lock_materialization_rebuild_result() {
    }

    public heartbeat_lock_materialization_rebuild_result(
      boolean success)
    {
      this();
      this.success = success;
      setSuccessIsSet(true);
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public heartbeat_lock_materialization_rebuild_result(heartbeat_lock_materialization_rebuild_result other) {
      __isset_bitfield = other.__isset_bitfield;
      this.success = other.success;
    }

    public heartbeat_lock_materialization_rebuild_result deepCopy() {
      return new heartbeat_lock_materialization_rebuild_result(this);
    }

    @Override
    public void clear() {
      setSuccessIsSet(false);
      this.success = false;
    }

    public boolean isSuccess() {
      return this.success;
    }

    public void setSuccess(boolean success) {
      this.success = success;
      setSuccessIsSet(true);
    }

    public void unsetSuccess() {
      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
    }

    public void setSuccessIsSet(boolean value) {
      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.lang.Boolean)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return isSuccess();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof heartbeat_lock_materialization_rebuild_result)
        return this.equals((heartbeat_lock_materialization_rebuild_result)that);
      return false;
    }

    public boolean equals(heartbeat_lock_materialization_rebuild_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true;
      boolean that_present_success = true;
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (this.success != that.success)
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);

      return hashCode;
    }

    @Override
    public int compareTo(heartbeat_lock_materialization_rebuild_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("heartbeat_lock_materialization_rebuild_result(");
      boolean first = true;

      sb.append("success:");
      sb.append(this.success);
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
        __isset_bitfield = 0;
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class heartbeat_lock_materialization_rebuild_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public heartbeat_lock_materialization_rebuild_resultStandardScheme getScheme() {
        return new heartbeat_lock_materialization_rebuild_resultStandardScheme();
      }
    }

    private static class heartbeat_lock_materialization_rebuild_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<heartbeat_lock_materialization_rebuild_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, heartbeat_lock_materialization_rebuild_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
                struct.success = iprot.readBool();
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, heartbeat_lock_materialization_rebuild_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.isSetSuccess()) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          oprot.writeBool(struct.success);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class heartbeat_lock_materialization_rebuild_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public heartbeat_lock_materialization_rebuild_resultTupleScheme getScheme() {
        return new heartbeat_lock_materialization_rebuild_resultTupleScheme();
      }
    }

    private static class heartbeat_lock_materialization_rebuild_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<heartbeat_lock_materialization_rebuild_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, heartbeat_lock_materialization_rebuild_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetSuccess()) {
          oprot.writeBool(struct.success);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, heartbeat_lock_materialization_rebuild_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.success = iprot.readBool();
          struct.setSuccessIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_runtime_stats_args implements org.apache.thrift.TBase<add_runtime_stats_args, add_runtime_stats_args._Fields>, java.io.Serializable, Cloneable, Comparable<add_runtime_stats_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("add_runtime_stats_args");

    private static final org.apache.thrift.protocol.TField STAT_FIELD_DESC = new org.apache.thrift.protocol.TField("stat", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new add_runtime_stats_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new add_runtime_stats_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable RuntimeStat stat; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      STAT((short)1, "stat");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // STAT
            return STAT;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.STAT, new org.apache.thrift.meta_data.FieldMetaData("stat", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, RuntimeStat.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(add_runtime_stats_args.class, metaDataMap);
    }

    public add_runtime_stats_args() {
    }

    public add_runtime_stats_args(
      RuntimeStat stat)
    {
      this();
      this.stat = stat;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public add_runtime_stats_args(add_runtime_stats_args other) {
      if (other.isSetStat()) {
        this.stat = new RuntimeStat(other.stat);
      }
    }

    public add_runtime_stats_args deepCopy() {
      return new add_runtime_stats_args(this);
    }

    @Override
    public void clear() {
      this.stat = null;
    }

    @org.apache.thrift.annotation.Nullable
    public RuntimeStat getStat() {
      return this.stat;
    }

    public void setStat(@org.apache.thrift.annotation.Nullable RuntimeStat stat) {
      this.stat = stat;
    }

    public void unsetStat() {
      this.stat = null;
    }

    /** Returns true if field stat is set (has been assigned a value) and false otherwise */
    public boolean isSetStat() {
      return this.stat != null;
    }

    public void setStatIsSet(boolean value) {
      if (!value) {
        this.stat = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case STAT:
        if (value == null) {
          unsetStat();
        } else {
          setStat((RuntimeStat)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case STAT:
        return getStat();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case STAT:
        return isSetStat();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof add_runtime_stats_args)
        return this.equals((add_runtime_stats_args)that);
      return false;
    }

    public boolean equals(add_runtime_stats_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_stat = true && this.isSetStat();
      boolean that_present_stat = true && that.isSetStat();
      if (this_present_stat || that_present_stat) {
        if (!(this_present_stat && that_present_stat))
          return false;
        if (!this.stat.equals(that.stat))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetStat()) ? 131071 : 524287);
      if (isSetStat())
        hashCode = hashCode * 8191 + stat.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(add_runtime_stats_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetStat(), other.isSetStat());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetStat()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.stat, other.stat);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("add_runtime_stats_args(");
      boolean first = true;

      sb.append("stat:");
      if (this.stat == null) {
        sb.append("null");
      } else {
        sb.append(this.stat);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (stat != null) {
        stat.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class add_runtime_stats_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_runtime_stats_argsStandardScheme getScheme() {
        return new add_runtime_stats_argsStandardScheme();
      }
    }

    private static class add_runtime_stats_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<add_runtime_stats_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, add_runtime_stats_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // STAT
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.stat = new RuntimeStat();
                struct.stat.read(iprot);
                struct.setStatIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, add_runtime_stats_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.stat != null) {
          oprot.writeFieldBegin(STAT_FIELD_DESC);
          struct.stat.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class add_runtime_stats_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_runtime_stats_argsTupleScheme getScheme() {
        return new add_runtime_stats_argsTupleScheme();
      }
    }

    private static class add_runtime_stats_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<add_runtime_stats_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, add_runtime_stats_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetStat()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetStat()) {
          struct.stat.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, add_runtime_stats_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.stat = new RuntimeStat();
          struct.stat.read(iprot);
          struct.setStatIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class add_runtime_stats_result implements org.apache.thrift.TBase<add_runtime_stats_result, add_runtime_stats_result._Fields>, java.io.Serializable, Cloneable, Comparable<add_runtime_stats_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("add_runtime_stats_result");

    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new add_runtime_stats_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new add_runtime_stats_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(add_runtime_stats_result.class, metaDataMap);
    }

    public add_runtime_stats_result() {
    }

    public add_runtime_stats_result(
      MetaException o1)
    {
      this();
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public add_runtime_stats_result(add_runtime_stats_result other) {
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public add_runtime_stats_result deepCopy() {
      return new add_runtime_stats_result(this);
    }

    @Override
    public void clear() {
      this.o1 = null;
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof add_runtime_stats_result)
        return this.equals((add_runtime_stats_result)that);
      return false;
    }

    public boolean equals(add_runtime_stats_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(add_runtime_stats_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("add_runtime_stats_result(");
      boolean first = true;

      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class add_runtime_stats_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_runtime_stats_resultStandardScheme getScheme() {
        return new add_runtime_stats_resultStandardScheme();
      }
    }

    private static class add_runtime_stats_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<add_runtime_stats_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, add_runtime_stats_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, add_runtime_stats_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class add_runtime_stats_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public add_runtime_stats_resultTupleScheme getScheme() {
        return new add_runtime_stats_resultTupleScheme();
      }
    }

    private static class add_runtime_stats_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<add_runtime_stats_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, add_runtime_stats_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetO1()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, add_runtime_stats_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_runtime_stats_args implements org.apache.thrift.TBase<get_runtime_stats_args, get_runtime_stats_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_runtime_stats_args>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_runtime_stats_args");

    private static final org.apache.thrift.protocol.TField RQST_FIELD_DESC = new org.apache.thrift.protocol.TField("rqst", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_runtime_stats_argsStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_runtime_stats_argsTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable GetRuntimeStatsRequest rqst; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      RQST((short)1, "rqst");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 1: // RQST
            return RQST;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.RQST, new org.apache.thrift.meta_data.FieldMetaData("rqst", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetRuntimeStatsRequest.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_runtime_stats_args.class, metaDataMap);
    }

    public get_runtime_stats_args() {
    }

    public get_runtime_stats_args(
      GetRuntimeStatsRequest rqst)
    {
      this();
      this.rqst = rqst;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_runtime_stats_args(get_runtime_stats_args other) {
      if (other.isSetRqst()) {
        this.rqst = new GetRuntimeStatsRequest(other.rqst);
      }
    }

    public get_runtime_stats_args deepCopy() {
      return new get_runtime_stats_args(this);
    }

    @Override
    public void clear() {
      this.rqst = null;
    }

    @org.apache.thrift.annotation.Nullable
    public GetRuntimeStatsRequest getRqst() {
      return this.rqst;
    }

    public void setRqst(@org.apache.thrift.annotation.Nullable GetRuntimeStatsRequest rqst) {
      this.rqst = rqst;
    }

    public void unsetRqst() {
      this.rqst = null;
    }

    /** Returns true if field rqst is set (has been assigned a value) and false otherwise */
    public boolean isSetRqst() {
      return this.rqst != null;
    }

    public void setRqstIsSet(boolean value) {
      if (!value) {
        this.rqst = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case RQST:
        if (value == null) {
          unsetRqst();
        } else {
          setRqst((GetRuntimeStatsRequest)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case RQST:
        return getRqst();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case RQST:
        return isSetRqst();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_runtime_stats_args)
        return this.equals((get_runtime_stats_args)that);
      return false;
    }

    public boolean equals(get_runtime_stats_args that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_rqst = true && this.isSetRqst();
      boolean that_present_rqst = true && that.isSetRqst();
      if (this_present_rqst || that_present_rqst) {
        if (!(this_present_rqst && that_present_rqst))
          return false;
        if (!this.rqst.equals(that.rqst))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetRqst()) ? 131071 : 524287);
      if (isSetRqst())
        hashCode = hashCode * 8191 + rqst.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_runtime_stats_args other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetRqst(), other.isSetRqst());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetRqst()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rqst, other.rqst);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
    }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_runtime_stats_args(");
      boolean first = true;

      sb.append("rqst:");
      if (this.rqst == null) {
        sb.append("null");
      } else {
        sb.append(this.rqst);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
      if (rqst != null) {
        rqst.validate();
      }
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_runtime_stats_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_runtime_stats_argsStandardScheme getScheme() {
        return new get_runtime_stats_argsStandardScheme();
      }
    }

    private static class get_runtime_stats_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_runtime_stats_args> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_runtime_stats_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // RQST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.rqst = new GetRuntimeStatsRequest();
                struct.rqst.read(iprot);
                struct.setRqstIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_runtime_stats_args struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.rqst != null) {
          oprot.writeFieldBegin(RQST_FIELD_DESC);
          struct.rqst.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_runtime_stats_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_runtime_stats_argsTupleScheme getScheme() {
        return new get_runtime_stats_argsTupleScheme();
      }
    }

    private static class get_runtime_stats_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_runtime_stats_args> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_runtime_stats_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetRqst()) {
          optionals.set(0);
        }
        oprot.writeBitSet(optionals, 1);
        if (struct.isSetRqst()) {
          struct.rqst.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_runtime_stats_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(1);
        if (incoming.get(0)) {
          struct.rqst = new GetRuntimeStatsRequest();
          struct.rqst.read(iprot);
          struct.setRqstIsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

  @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_runtime_stats_result implements org.apache.thrift.TBase<get_runtime_stats_result, get_runtime_stats_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_runtime_stats_result>   {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_runtime_stats_result");

    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
    private static final org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1);

    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_runtime_stats_resultStandardSchemeFactory();
    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_runtime_stats_resultTupleSchemeFactory();

    private @org.apache.thrift.annotation.Nullable java.util.List<RuntimeStat> success; // required
    private @org.apache.thrift.annotation.Nullable MetaException o1; // required

    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      SUCCESS((short)0, "success"),
      O1((short)1, "o1");

      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

      static {
        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
          byName.put(field.getFieldName(), field);
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByThriftId(int fieldId) {
        switch(fieldId) {
          case 0: // SUCCESS
            return SUCCESS;
          case 1: // O1
            return O1;
          default:
            return null;
        }
      }

      /**
       * Find the _Fields constant that matches fieldId, throwing an exception
       * if it is not found.
       */
      public static _Fields findByThriftIdOrThrow(int fieldId) {
        _Fields fields = findByThriftId(fieldId);
        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
        return fields;
      }

      /**
       * Find the _Fields constant that matches name, or null if its not found.
       */
      @org.apache.thrift.annotation.Nullable
      public static _Fields findByName(java.lang.String name) {
        return byName.get(name);
      }

      private final short _thriftId;
      private final java.lang.String _fieldName;

      _Fields(short thriftId, java.lang.String fieldName) {
        _thriftId = thriftId;
        _fieldName = fieldName;
      }

      public short getThriftFieldId() {
        return _thriftId;
      }

      public java.lang.String getFieldName() {
        return _fieldName;
      }
    }

    // isset id assignments
    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, RuntimeStat.class))));
      tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_runtime_stats_result.class, metaDataMap);
    }

    public get_runtime_stats_result() {
    }

    public get_runtime_stats_result(
      java.util.List<RuntimeStat> success,
      MetaException o1)
    {
      this();
      this.success = success;
      this.o1 = o1;
    }

    /**
     * Performs a deep copy on <i>other</i>.
     */
    public get_runtime_stats_result(get_runtime_stats_result other) {
      if (other.isSetSuccess()) {
        java.util.List<RuntimeStat> __this__success = new java.util.ArrayList<RuntimeStat>(other.success.size());
        for (RuntimeStat other_element : other.success) {
          __this__success.add(new RuntimeStat(other_element));
        }
        this.success = __this__success;
      }
      if (other.isSetO1()) {
        this.o1 = new MetaException(other.o1);
      }
    }

    public get_runtime_stats_result deepCopy() {
      return new get_runtime_stats_result(this);
    }

    @Override
    public void clear() {
      this.success = null;
      this.o1 = null;
    }

    public int getSuccessSize() {
      return (this.success == null) ? 0 : this.success.size();
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.Iterator<RuntimeStat> getSuccessIterator() {
      return (this.success == null) ? null : this.success.iterator();
    }

    public void addToSuccess(RuntimeStat elem) {
      if (this.success == null) {
        this.success = new java.util.ArrayList<RuntimeStat>();
      }
      this.success.add(elem);
    }

    @org.apache.thrift.annotation.Nullable
    public java.util.List<RuntimeStat> getSuccess() {
      return this.success;
    }

    public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List<RuntimeStat> success) {
      this.success = success;
    }

    public void unsetSuccess() {
      this.success = null;
    }

    /** Returns true if field success is set (has been assigned a value) and false otherwise */
    public boolean isSetSuccess() {
      return this.success != null;
    }

    public void setSuccessIsSet(boolean value) {
      if (!value) {
        this.success = null;
      }
    }

    @org.apache.thrift.annotation.Nullable
    public MetaException getO1() {
      return this.o1;
    }

    public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) {
      this.o1 = o1;
    }

    public void unsetO1() {
      this.o1 = null;
    }

    /** Returns true if field o1 is set (has been assigned a value) and false otherwise */
    public boolean isSetO1() {
      return this.o1 != null;
    }

    public void setO1IsSet(boolean value) {
      if (!value) {
        this.o1 = null;
      }
    }

    public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
      switch (field) {
      case SUCCESS:
        if (value == null) {
          unsetSuccess();
        } else {
          setSuccess((java.util.List<RuntimeStat>)value);
        }
        break;

      case O1:
        if (value == null) {
          unsetO1();
        } else {
          setO1((MetaException)value);
        }
        break;

      }
    }

    @org.apache.thrift.annotation.Nullable
    public java.lang.Object getFieldValue(_Fields field) {
      switch (field) {
      case SUCCESS:
        return getSuccess();

      case O1:
        return getO1();

      }
      throw new java.lang.IllegalStateException();
    }

    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
    public boolean isSet(_Fields field) {
      if (field == null) {
        throw new java.lang.IllegalArgumentException();
      }

      switch (field) {
      case SUCCESS:
        return isSetSuccess();
      case O1:
        return isSetO1();
      }
      throw new java.lang.IllegalStateException();
    }

    @Override
    public boolean equals(java.lang.Object that) {
      if (that instanceof get_runtime_stats_result)
        return this.equals((get_runtime_stats_result)that);
      return false;
    }

    public boolean equals(get_runtime_stats_result that) {
      if (that == null)
        return false;
      if (this == that)
        return true;

      boolean this_present_success = true && this.isSetSuccess();
      boolean that_present_success = true && that.isSetSuccess();
      if (this_present_success || that_present_success) {
        if (!(this_present_success && that_present_success))
          return false;
        if (!this.success.equals(that.success))
          return false;
      }

      boolean this_present_o1 = true && this.isSetO1();
      boolean that_present_o1 = true && that.isSetO1();
      if (this_present_o1 || that_present_o1) {
        if (!(this_present_o1 && that_present_o1))
          return false;
        if (!this.o1.equals(that.o1))
          return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      int hashCode = 1;

      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
      if (isSetSuccess())
        hashCode = hashCode * 8191 + success.hashCode();

      hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287);
      if (isSetO1())
        hashCode = hashCode * 8191 + o1.hashCode();

      return hashCode;
    }

    @Override
    public int compareTo(get_runtime_stats_result other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
      }

      int lastComparison = 0;

      lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetSuccess()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1());
      if (lastComparison != 0) {
        return lastComparison;
      }
      if (isSetO1()) {
        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1);
        if (lastComparison != 0) {
          return lastComparison;
        }
      }
      return 0;
    }

    @org.apache.thrift.annotation.Nullable
    public _Fields fieldForId(int fieldId) {
      return _Fields.findByThriftId(fieldId);
    }

    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
      scheme(iprot).read(iprot, this);
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
      scheme(oprot).write(oprot, this);
      }

    @Override
    public java.lang.String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder("get_runtime_stats_result(");
      boolean first = true;

      sb.append("success:");
      if (this.success == null) {
        sb.append("null");
      } else {
        sb.append(this.success);
      }
      first = false;
      if (!first) sb.append(", ");
      sb.append("o1:");
      if (this.o1 == null) {
        sb.append("null");
      } else {
        sb.append(this.o1);
      }
      first = false;
      sb.append(")");
      return sb.toString();
    }

    public void validate() throws org.apache.thrift.TException {
      // check for required fields
      // check for sub-struct validity
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      try {
        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
      try {
        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
      } catch (org.apache.thrift.TException te) {
        throw new java.io.IOException(te);
      }
    }

    private static class get_runtime_stats_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_runtime_stats_resultStandardScheme getScheme() {
        return new get_runtime_stats_resultStandardScheme();
      }
    }

    private static class get_runtime_stats_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<get_runtime_stats_result> {

      public void read(org.apache.thrift.protocol.TProtocol iprot, get_runtime_stats_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 0: // SUCCESS
              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                {
                  org.apache.thrift.protocol.TList _list1484 = iprot.readListBegin();
                  struct.success = new java.util.ArrayList<RuntimeStat>(_list1484.size);
                  @org.apache.thrift.annotation.Nullable RuntimeStat _elem1485;
                  for (int _i1486 = 0; _i1486 < _list1484.size; ++_i1486)
                  {
                    _elem1485 = new RuntimeStat();
                    _elem1485.read(iprot);
                    struct.success.add(_elem1485);
                  }
                  iprot.readListEnd();
                }
                struct.setSuccessIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 1: // O1
              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                struct.o1 = new MetaException();
                struct.o1.read(iprot);
                struct.setO1IsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();
        struct.validate();
      }

      public void write(org.apache.thrift.protocol.TProtocol oprot, get_runtime_stats_result struct) throws org.apache.thrift.TException {
        struct.validate();

        oprot.writeStructBegin(STRUCT_DESC);
        if (struct.success != null) {
          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
            for (RuntimeStat _iter1487 : struct.success)
            {
              _iter1487.write(oprot);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
        if (struct.o1 != null) {
          oprot.writeFieldBegin(O1_FIELD_DESC);
          struct.o1.write(oprot);
          oprot.writeFieldEnd();
        }
        oprot.writeFieldStop();
        oprot.writeStructEnd();
      }

    }

    private static class get_runtime_stats_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
      public get_runtime_stats_resultTupleScheme getScheme() {
        return new get_runtime_stats_resultTupleScheme();
      }
    }

    private static class get_runtime_stats_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<get_runtime_stats_result> {

      @Override
      public void write(org.apache.thrift.protocol.TProtocol prot, get_runtime_stats_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet optionals = new java.util.BitSet();
        if (struct.isSetSuccess()) {
          optionals.set(0);
        }
        if (struct.isSetO1()) {
          optionals.set(1);
        }
        oprot.writeBitSet(optionals, 2);
        if (struct.isSetSuccess()) {
          {
            oprot.writeI32(struct.success.size());
            for (RuntimeStat _iter1488 : struct.success)
            {
              _iter1488.write(oprot);
            }
          }
        }
        if (struct.isSetO1()) {
          struct.o1.write(oprot);
        }
      }

      @Override
      public void read(org.apache.thrift.protocol.TProtocol prot, get_runtime_stats_result struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
        java.util.BitSet incoming = iprot.readBitSet(2);
        if (incoming.get(0)) {
          {
            org.apache.thrift.protocol.TList _list1489 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
            struct.success = new java.util.ArrayList<RuntimeStat>(_list1489.size);
            @org.apache.thrift.annotation.Nullable RuntimeStat _elem1490;
            for (int _i1491 = 0; _i1491 < _list1489.size; ++_i1491)
            {
              _elem1490 = new RuntimeStat();
              _elem1490.read(iprot);
              struct.success.add(_elem1490);
            }
          }
          struct.setSuccessIsSet(true);
        }
        if (incoming.get(1)) {
          struct.o1 = new MetaException();
          struct.o1.read(iprot);
          struct.setO1IsSet(true);
        }
      }
    }

    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
    }
  }

}
